2016-07-29 13 views
5

OS (Linux): Ubuntu 14.04.4 LTS (Trusty Tahr)Warum sucht Python 3 in meinem Python 2.7-Paketverzeichnis nach Paketen?

Aus irgendeinem Grund, meine Python 3.5.2 sucht in das Verzeichnis 2.7-Pakete Python statt seiner eigenen:

] python3 -m ensurepip 

Ignoring indexes: https://pypi.python.org/simple 
Requirement already satisfied (use --upgrade to upgrade): 
    setuptools in /usr/local/lib/python3.5/site-packages 
Requirement already satisfied (use --upgrade to upgrade): 
    pip in /usr/local/lib/python2.7/dist-packages 

Weitere Details:

] python3 
Python 3.5.2 (default, Jul 29 2016, 09:41:38) 
[GCC 6.1.1 20160511] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import site; site.getsitepackages() 
['/usr/local/lib/python3.5/site-packages'] 
>>> 

^^^ - Das scheint richtig und erwähnt nichts über die 2.7-Pakete-Verzeichnis.

Es sieht aus wie es sollte nur in /usr/local/lib/python3.5/site-packages suchen, aber aus irgendeinem Grund ist es auch in /usr/local/lib/python2.7/dist-packages suchen, wo es kein Geschäft in der Suche hat.

Zum Beispiel schauen, was passiert, wenn ich versuche, psycopg2 als Python-3-Modul zu installieren:

] python3 -m pip install psycopg2 
Requirement already satisfied (use --upgrade to upgrade): 
    psycopg2 in /usr/local/lib/python2.7/dist-packages 

Es wird als ein installiertes Paket in der 2.7 Verteilung zu finden und Fehlern seinen Python 3-Version installieren in /usr/local/lib/python3.5/site-packages.

Um noch mehr Verwirrung in den Mix, ich versuche gerade für pip 3, aber ohne Erfolg gehen:

] pip3 install psycopg2 
Requirement already satisfied (use --upgrade to upgrade): 
    psycopg2 in /usr/local/lib/python2.7/dist-packages 

] cat `which pip3` 
#!/usr/local/bin/python3 

# -*- coding: utf-8 -*- 
import re 
import sys 

from pip import main 

if __name__ == '__main__': 
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) 
    sys.exit(main()) 

aktualisieren: PYTHONPATH-/usr/local/lib/python2.7/dist-packages gesetzt wurde. Dies war der Grund für das obige Problem. Kredit geht an Benutzer be_good_do_good für die Hilfe herauszufinden, welche Schraube zu drehen, um Dinge zu arbeiten, wie sie sollten.

+1

Können Sie Ihren PATH-Wert und PYTHONPATH-Wert posten –

+0

@be_good_do_good dachte über das gleiche, vielleicht gibt es eine manuell hinzugefügte 2.7-Site-Pakete im Pfad – rll

+1

Sie sollten auch den Wert von 'sys.path' posten. Sie könnten auch eine '.pth'-Datei an einem der gesuchten Orte haben. 'sys.path' sollte das aufleuchten lassen. Es kann auch sinnvoll sein, im ausführlichen Modus ('python -v') auszuführen, wo Module importiert werden. – theorifice

Antwort

2

PYTHONPATH wurde möglicherweise auf 2.7 Verteilungspakete festgelegt, die dies möglicherweise verursachen.