Virtualenv: 'site' hat kein Attribut "getsitepackages"

Erstellt am 24. Feb. 2012  ·  4Kommentare  ·  Quelle: pypa/virtualenv

Jede virtuelle Umgebung, mit oder ohne --system-site-packages , gibt mir Folgendes:

% python -c 'import site; site.getsitepackages()'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
AttributeError: 'module' object has no attribute 'getsitepackages'

Hilfreichster Kommentar

Ja, einer der hässlicheren Aspekte der Implementierung von virtualenv ist, dass es eine eigene Kopie des Site-Moduls haben muss, das für alle virtualenvs verwendet wird, unabhängig davon, mit welcher Version von Python sie erstellt wurden. Und diese Kopie stammt aus der Zeit vor der Hinzufügung von site.getsitepackages() (zuerst in Python 2.7 hinzugefügt, glaube ich).

Ich hätte keine Einwände gegen einen Pull-Request, der diese Funktion zum Site-Modul von virtualenv hinzufügt, solange die Implementierung auf allen von virtualenv unterstützten Versionen von Python (2.4 bis 3.3a) funktioniert. Oder wenn das aufgrund fehlender APIs in anderen Bereichen der früheren Python-Versionen zu schwierig ist, lassen Sie es vielleicht abhängig von sys.version oder so etwas bedingt definieren.

Alle 4 Kommentare

Ja, einer der hässlicheren Aspekte der Implementierung von virtualenv ist, dass es eine eigene Kopie des Site-Moduls haben muss, das für alle virtualenvs verwendet wird, unabhängig davon, mit welcher Version von Python sie erstellt wurden. Und diese Kopie stammt aus der Zeit vor der Hinzufügung von site.getsitepackages() (zuerst in Python 2.7 hinzugefügt, glaube ich).

Ich hätte keine Einwände gegen einen Pull-Request, der diese Funktion zum Site-Modul von virtualenv hinzufügt, solange die Implementierung auf allen von virtualenv unterstützten Versionen von Python (2.4 bis 3.3a) funktioniert. Oder wenn das aufgrund fehlender APIs in anderen Bereichen der früheren Python-Versionen zu schwierig ist, lassen Sie es vielleicht abhängig von sys.version oder so etwas bedingt definieren.

Duplikat Nr. 355

schließt als Dupe zu # 355, da es allgemeiner ist.

habe dieses Problem mit Python 3.6.5

>> python --version && python -c "import site; print(site.getsitepackages())"
Python 3.6.5
Traceback (most recent call last):
  File "<string>", line 1, in <module>
AttributeError: module 'site' has no attribute 'getsitepackages'

kein Duplikat von #355

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen