Ich installiere erfolgreich verschiedene Module mit pip und sie werden im angezeigt
pip list
sowie:
beautifulsoup4 (4.4.1)
requests (2.10.0)
Scrapy (1.1.0)
Immer wenn ich versuche, es zu importieren
import beautifulsoup4
import bs4
oder import Scrapy
oder import requests
der folgende Fehler wird angezeigt:
$ python
Python 2.7.5 (default, Mar 9 2014, 22:15:05)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named requests
_/Update:, wenn ich Python starte, wenn ich mich im richtigen Site-Packages-Verzeichnis befinde
$ pwd
/usr/local/lib/python2.7/site-packages
$ python
Python 2.7.5 (default, Mar 9 2014, 22:15:05)
>>> import requests
>>> import bs4
>>> import scrapy
Dann klappt es. Dies würde das Problem lösen, wenn Sie direkt auf dem Terminal schreiben. Ich habe jedoch keine Ahnung, wie es in einer file.py funktionieren soll, was die normale Verwendung sein wird.
Soweit ich weiß, habe ich nur Python2.7 installiert.
Wenn ich eine file.py in einem lokalen Ordner gespeichert habe. Dies beinhaltet zum Beispiel
import requests
from bs4 import BeautifulSoup
wenn ich es versuche
python file.py
Ich bekomme den gleichen Fehler.
Dasselbe passiert mit jedem anderen Modul aus der Liste. Ich denke, Pip installiert sie in einem Verzeichnis, das Python nicht liest, aber was ich gelesen habe, ist es das richtige.
Sie sind alle hier installiert:
/usr/local/lib/python2.7/site-packages
Von Padraic Cunningham angeforderte Ausgabe:
$ which -a pip
/usr/local/bin/pip
$ which -a python
/usr/bin/python
/usr/local/bin/python
Von leovp angeforderte Ausgabe:
$ pip -V
pip 8.1.2 from /usr/local/lib/python2.7/site-packages (python 2.7)
Ich habe die folgenden Threads überprüft, aber leider haben sie mir nicht geholfen, das Problem zu lösen:
Irgendwelche Ideen, was das Problem ist?
Da Ihr Problem möglicherweise aus verschiedenen Gründen verursacht wurde, habe ich hier einige davon aufgelistet:
Der Link, nach dem Sie gesucht haben: https://pythonhosted.org/setuptools/setuptools.html#development-mode
pip
, auf die Sie zugreifen, eine Version hat und der verwendete Python-Interpreter eine andere ist.Stellen Sie also sicher, dass Sie dieselbe Version von Python verwenden, um das Paket zu installieren und zu verwenden.
Sie können dies mit einem Alias beheben,
Richten Sie zunächst einen Shell-Alias ein:
alias python=/usr/local/bin/python3
Geben Sie das dann an einer Eingabeaufforderung ein oder geben Sie es in Ihren ~/.bashrc
ein, damit beim Öffnen von Python vom Terminal aus die richtige Version geöffnet wird.
Hier die Antwort, die funktioniert hat, was im Wesentlichen in den Kommentaren der Frage erläutert wurde. Ich hielt es jedoch für sinnvoll, es als klare und gut strukturierte Antwort erklären zu lassen.
Das hervorgehobene Problem war, dass ich nicht den Interpreter verwendet habe, den pip für ..__ installiert hat. Der Befehl which
zeigt an, wo pip die Module installiert hat:
$ which -a pip
/usr/local/bin/pip
und wo sich die verschiedenen Python-Versionen befanden:
$ which -a python
/usr/bin/python
/usr/local/bin/python
Das heißt, mein System/Standard-Python war
/usr/bin/python
während pip für installiert wurde
/usr/local/bin/python
Daher konnte ich nichts importieren, das ich gerade installiert hatte, als ich gerade python
eingab, da der /usr/bin/python
-Interpreter gestartet wurde.
Install pip erneut und gibt das Ziel der zu installierenden Module an. Dies muss das Ziel für den System-/Standard-Python sein.
Dies wurde in zwei Schritten durchgeführt:
get-pip.py
aus bootstrap.pypa.io/get-pip.pyInstallieren Sie es mit dem folgenden Befehl
Sudo /usr/bin/python get-pip.py
Beachten Sie, dass ich ohne Sudo
einen Fehler erhalten habe und Pip nicht installieren konnte.
Ich habe gerade ein ähnliches Problem behoben.
Um etwas Hintergrund zu geben, installiere ich pip
mit homebrew
, indem Sie brew install python
ausführen. Ein Nachteil bei der Ausführung dieses Befehls: Es werden dann sowohl Python2 als auch Python3 installiert (in manchen Fällen möglicherweise kein Nachteil)
pip install scrapy
aber wenn ich versuche, import scrapy
, beschwert es ImportError: No module named scrapy
.
Meine Lösung: Lauf brew doctor
, sollte Ihnen melden, dass ein Link defekt ist. Sie werden aufgefordert, brew link python
auszuführen. Möglicherweise treten Fehler auf. Befolgen Sie jedoch den Vorschlag der Eingabeaufforderung, um nach dem erfolgreichen Ausführen von brew link python
alles auszuführen sollte jetzt funktionieren.
Ich füge dies hinzu, falls es jemand anderem hilft. Für mich bestand das Problem darin, dass ich Anaconda ausführte und pip3 in ein anderes Verzeichnis installierte, als mit Anaconda verknüpft war. Um dies zu beheben, führen Sie conda deactivate
Aus. Sie können später mit conda activate
Reaktivieren.
Führen Sie brew doctor
im Terminal ausIt sollte eine Warnung mit folgendem Hinweis anzeigen:
Warning: The following directories do not exist:
/usr/local/sbin
You should create these directories and change their ownership to your account.
Sudo mkdir -p /usr/local/sbin
Sudo chown -R $(whoami) /usr/local/sbin
geben Sie Sudo mkdir -p /usr/local/sbin
in das Terminal ein und drücken Sie die Eingabetaste Geben Sie dann Sudo chown -R $(whoami) /usr/local/sbin
ein.