2013-02-24 4 views
17

Ich bin ein Neuling und ich brauchte das pySerial und feedparser Modul für meine Projekte. Ich laufe Berglöwen.Python pip Installationsmodul wurde nicht gefunden. Wie verknüpfe ich Python mit dem Pip-Ort?

Ich folgte dem folgenden Tutorial, so dass ich auf Python 2.7.3 aktualisieren und dann die oben genannten Module verwenden konnte.

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

Ich folgte diesem Tutorial, bis ich pip installiert. Anstatt Virtualenv zu installieren. Ich habe die folgenden Befehle verwendet, um pySerial und feedparser zu installieren: 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 es wie im Tutorial erwähnt mit Homebrew installiert habe.

Dann habe ich versucht feedparser

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

Beachten Sie, wie sein in dem site-packages-Verzeichnis in der usr/local/lib installieren.

Alle meine Pip-Installationen werden in diesem Verzeichnis installiert, aber Python scheint sie nicht aufzunehmen, wenn ich sie importiere.

Wie stelle ich den Pfad so ein, dass Python auch dort sowie Kernverzeichnis aussieht?

Ihre Hilfe wird sehr geschätzt.

Ich habe versucht der Suche nach Antworten hier: Pip installs but module is not found Why I can't import beautifulsoup on mac using python 2.7 after installing it by using pip and/or easy_install?

aber niether von ihnen in der gleichen Situation sind wie ich. Ich verstehe nicht, warum dies geschieht, wie ich meine bash_profile mit folgenden

bearbeitet
# 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 installiert homebrew und dann Python 2.7.3 durch Homebrew installiert (2.7.3 jetzt gerade auf meinem Rechner läuft)

Ich dachte, alle Pip-Installationen würden korrekt verknüpft sein?

Antwort

32

Als schnelle Abhilfe, und unter der Annahme, dass Sie auf einem bash-ähnliche Terminal sind (Linux/OSX), 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

+7

Es funktioniert für mich seltsam Konfigurationseinstellungen in der Datei pydistutils.cfg

Versuche ausgeführt hatte. Kannst du das kurz erklären? Thx – GilbertLee

0

Wie hast du 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 versuchen, die Standardversion auszuführen und die neu installierten Module zu importieren.

7

Ich hatte auch dieses Problem. Ich habe bemerkt, dass alle Unterverzeichnisse und Dateien unter /usr/local/lib/python2.7/dist-packages/ keine Lese- oder Schreibrechte für Gruppen und andere hatten, und sie waren im Besitz von root.Dies bedeutet, dass nur der Root-Benutzer auf sie zugreifen können, und so jeder Benutzer, der ein Python-Skript auszuführen versucht, das eines dieser Module verwendet, um einen Importfehler bekam:

$ 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 die Erlaubnis, auf die Dateien und suchen lesen die Erlaubnis erteilt auf Unterverzeichnisse für die Gruppe und andere wie so:

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

und das 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 diese Pakete mit pip installiert (als root Witz laufen h sudo). Ich bin mir nicht sicher, warum es installiert wurde, ohne Lese-/Suchberechtigungen zu gewähren. Dies scheint mir ein Fehler in pip oder möglicherweise in der Paketkonfiguration zu sein, aber ich bin nicht sehr vertraut mit Python und seiner Modulverpackung, also weiß ich es nicht genau. FWIW, alle Pakete unter dist-packages hatten dieses Problem. Wie auch immer, hoffe das hilft.

Grüße.

4

Hier ist etwas, das ich nach langer Zeit gelernt, Probleme zu haben mit pip, wenn ich mehrere Versionen von Python installiert hatte (gilt insbesondere für OS X-Benutzer, die wahrscheinlich brauen verwenden Python-Mischungen zu installieren.)

Ich gehe davon aus dass die meisten python-Entwickler am Anfang ihrer Skripte haben:

#!/bin/env python 

Sie werden überrascht sein zu erfahren, dass dies die gleiche python wie die nicht unbedingt über die Befehlszeile ausführen >python

Um sicherzustellen, dass Sie das Paket installieren Sie die richtige pip Instanz für Ihre Python-Interpreter verwenden Sie so etwas wie laufen müssen:

>/bin/env python -m pip install --upgrade mymodule 
+0

genial. Das hat mein Problem gelöst. –

+0

Ich glaube, du meintest '/ usr/bin/env' für OSX –

3

keine anderen Lösungen wurden für mich zu arbeiten, also habe ich versucht:

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

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

0

Für mich war das Problem, dass ich rm ~/.pydistutils.cfg