it-swarm.com.de

Module werden mit pip unter OSX installiert, aber beim Import nicht gefunden

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)

Vom Terminal

Immer wenn ich versuche, es zu importieren

import beautifulsoup4import 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.

Aus file.py

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.

Ansatz

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)

Threads bereits geprüft

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?

12
J0ANMM

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

  • Es kann auch passieren, wenn Sie zwei Versionen von Python installiert haben. Wenn die 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.

  • Wenn die beiden oben genannten Methoden für Sie nicht funktionieren, überprüfen Sie Folgendes:

ImportError Kein Modul namens oder this

4
Ani Menon

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.

Lösung

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:

  1. Herunterladen von get-pip.py aus bootstrap.pypa.io/get-pip.py
  2. Installieren 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.

10
J0ANMM

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.

4
Raymond

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.

2
Eric Wiener

Führen Sie brew doctorim 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.

0
user73772