wake-up-neo.net

Das Python-Pip-Installationsmodul wird nicht gefunden. Wie kann ich Python mit dem Pip-Standort verknüpfen?

Ich bin ein Neuling und brauchte für meine Projekte das pySerial- und das Feedparser-Modul. Ich betreibe Mountain Lion.

Ich folgte dem folgenden Tutorial, um ein Upgrade auf Python 2.7.3 durchzuführen und dann die oben genannten Module zu verwenden.

http://hackercodex.com/guide/python-virtualenv-on-mac-osx-mountain-lion-10.8/

Ich folgte diesem Tutorial, bis ich pip installierte. Anstatt Virtualenv zu installieren. Ich habe die folgenden Befehle verwendet, um pySerial und den Feedparser zu installieren

$ pip install pySerial
Requirement already satisfied (use --upgrade to upgrade): pySerial in /Library/Python/2.7/site-packages
Cleaning up...

Ich nahm an, dass dies bereits vorhanden war und überprüfte es. Python scheint das gut zu importieren. Meine Python-Version wurde auf 2.7.3 btw aktualisiert, seit ich sie mit Homebrew installiert habe, wie im Tutorial beschrieben.

Dann habe ich versucht, den Feedparser zu installieren

$ pip install feedparser
Requirement already satisfied (use --upgrade to upgrade): feedparser in /usr/local/lib/python2.7/site-packages
Cleaning up...

Beachten Sie, wie es sich im Site-Packages-Verzeichnis in usr/local/lib befindet.

Alle meine Pip-Installationen werden in diesem Verzeichnis installiert, aber Python scheint sie nicht zu erfassen, wenn ich versuche, sie zu importieren. 

Wie stelle ich den Pfad so ein, dass Python dort ebenso wie im Kernverzeichnis aussieht?

Ihre Hilfe wird sehr geschätzt.

Ich habe versucht, hier nach Antworten zu suchen: Pip installiert, aber das Modul wurde nicht gefundenWarum kann ich beautifulsoup auf Mac nicht mit Python 2.7 importieren, nachdem ich es mit pip und/oder easy_install installiert habe?

aber keine von ihnen ist in der gleichen Situation wie ich. Ich verstehe nicht warum dies passiert, als ich mein bash_profile mit den folgenden Änderungen bearbeitet habe

# Set architecture flags
export ARCHFLAGS="-Arch x86_64"
# Ensure user-installed binaries take precedence
export PATH=/usr/local/share/python:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
# Load .bashrc if it exists
test -f ~/.bashrc && source ~/.bashrc

dann Homebrew installiert und dann Python 2.7.3 über Homebrew installiert (2.7.3 läuft derzeit auf meinem Computer) 

Ich dachte mir, dass alle Pip-Installationen korrekt verlinkt werden würden?

23
user1953478

Als schnelle Problemumgehung und unter der Annahme, dass Sie sich auf einem bash-ähnlichen Terminal (Linux/OSX) befinden, können Sie versuchen, die Umgebungsvariable PYTHONPATH zu exportieren:

export PYTHONPATH="${PYTHONPATH}:/usr/local/lib/python2.7/site-packages:/usr/lib/python2.7/site-packages"

Für Python 2.7

42
Ruslan

Hier ist etwas, was ich nach langer Zeit mit Problemen mit Pip gelernt habe, als ich mehrere Versionen von Python installiert hatte (dies gilt insbesondere für Benutzer von OS X, die wahrscheinlich Brew zum Installieren von Python-Mischungen verwenden.

Ich gehe davon aus, dass die meisten Python-Entwickler am Anfang ihrer Skripte stehen:

#!/bin/env python

Sie werden vielleicht überrascht sein, dass dies nicht unbedingt derselbe Python ist wie der, den Sie von der Befehlszeile aus ausführen. >python

Um sicherzustellen, dass Sie das Paket mit der richtigen Pip-Instanz für Ihren Python-Interpreter installieren, müssen Sie Folgendes ausführen:

>/bin/env python -m pip install --upgrade mymodule
9
sorin

Ich hatte auch dieses Problem. Ich habe festgestellt, dass alle Unterverzeichnisse und Dateien unter /usr/local/lib/python2.7/dist-packages/ keine Lese- oder Schreibberechtigung für Gruppe und andere hatten und dass sie im Besitz von root waren. Dies bedeutet, dass nur der root-Benutzer auf sie zugreifen kann. Daher hat jeder Benutzer, der versucht, ein Python-Skript auszuführen, das eines dieser Module verwendet, einen Importfehler:

$ python
Python 2.7.3 (default, Apr 10 2013, 06:20:15) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import Selenium
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named Selenium
>>> 

Ich habe die Leseberechtigung für die Dateien erteilt und die Suchberechtigung für die Unterverzeichnisse für Gruppe und ähnliches:

$ Sudo chmod -R go+rX /usr/local/lib/python2.7/dist-packages

Und das hat das Problem für mich gelöst:

$ python
Python 2.7.3 (default, Apr 10 2013, 06:20:15) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import Selenium
>>> 

Ich habe diese Pakete mit pip installiert (als root mit Sudo ausgeführt). Ich bin nicht sicher, warum es installiert wurde, ohne Lese-/Suchberechtigungen zu erteilen. Dies scheint mir ein Fehler in Pip oder möglicherweise in der Paketkonfiguration zu sein, aber ich bin mit Python und dessen Modul-Paketierung nicht sehr vertraut, daher weiß ich es nicht genau. FWIW, alle Pakete unter dist-packages hatten dieses Problem. Wie auch immer, hoffe das hilft.

Grüße.

7
boshea

Es gab keine anderen Lösungen für mich, also habe ich versucht:

pip uninstall <module> && pip install <module>

Und das hat es für mich gelöst. Ihre Laufleistung kann variieren.

4
Cory Klein

Für mich war das Problem, dass ich seltsame Konfigurationseinstellungen in der Datei pydistutils.cfg hatte.

Versuchen Sie es mit rm ~/.pydistutils.cfg .

0
yask

Die folgenden Schritte haben mir dabei geholfen, das Problem zu beheben.

  • aktualisieren Sie die Pip-Version
  • entfernen Sie die erstellte Umgebung mit dem Befehl rm -rf env-name
  • erstelle eine Umgebung mit dem Befehl python3 -m venv env-aide
  • installieren Sie nun das Paket und überprüfen Sie
0
SuperNova

wie haben Sie easy_install/pip installiert? Stellen Sie sicher, dass Sie es für die aktualisierte Version von Python installiert haben. Was hier passiert sein könnte, ist, dass die alte (Standard-) Python-Installation möglicherweise mit Ihrer Pip-Installation verknüpft ist. Vielleicht möchten Sie die Standardversion ausführen und die neu installierten Module importieren. 

0
Akash

Wenn Ihre Binärdateien python und pip aus unterschiedlichen Versionen stammen, sind Module, die mit pip installiert wurden, für Python nicht verfügbar.

Zu lösende Schritte:

  1. Öffnen Sie ein neues Terminal mit einer Standardumgebung und suchen Sie die Binärdateien für pip und python.
readlink $(which pip)
../Cellar/[email protected]/2.7.15_1/bin/pip

readlink $(which python)
/usr/local/bin/python3      <-- another symlink

readlink /usr/local/bin/python3
../Cellar/python/3.7.2/bin/python3

Hier sehen Sie eine offensichtliche Abweichung zwischen den Versionen 2.7.15_1 und 3.7.2 in meinem Fall.

  1. Ersetzen Sie den Pip-Symlink durch die Pip-Binärdatei, die Ihrer aktuellen Version von Python entspricht. Verwenden Sie Ihre python Version im folgenden Befehl.
ln -is /usr/local/Cellar/python/3.7.2/bin/pip3 $(which pip)

Das -i flag fordert Sie zum Überschreiben auf, wenn das Ziel vorhanden ist.

Das sollte den Trick machen.

0
adc

Für alle, die Visual Studio auch in einer Windows-Umgebung verwenden:

Ich erkannte, dass ich mein Modul installiert sehen konnte, als ich pip install ausführte

py pip install [moduleName] 
py pip list

Beim Debuggen in Visual Studio wurde jedoch "Modul nicht gefunden". Seltsamerweise lief ich erfolgreich import [moduleName] als ich den Dolmetscher in Powershell laufen ließ.

Grund:

visual Studio verwendete den falsch Interpreter bei: C:\Users\[username]\AppData\Local\Programs\Python\Python37\

Was ich wirklich wollte, war, dass Visual Studio das Virtualenv verwendet, das ich für mein Projekt eingerichtet habe. Klicken Sie dazu mit der rechten Maustaste auf Python Umgebungen im "Projektmappen-Explorer", wählen Sie Virtuelle Umgebung hinzufügen ... und wählen Sie dann den Ordner aus, in dem Sie Ihre virtuelle Umgebung erstellt haben. enter image description here Wählen Sie dann unter Projekteinstellungen auf der Registerkarte Allgemein Ihre virtuelle Umgebung in der Dropdown-Liste aus.

enter image description here

Jetzt sollte Visual Studio denselben Interpreter verwenden und alles sollte Nice spielen!

0
Solarcloud