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.
Können Sie Ihren PATH-Wert und PYTHONPATH-Wert posten –
@be_good_do_good dachte über das gleiche, vielleicht gibt es eine manuell hinzugefügte 2.7-Site-Pakete im Pfad – rll
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