Cualquier virtualenv, con o sin --system-site-packages
, me da:
% python -c 'import site; site.getsitepackages()'
Traceback (most recent call last):
File "<string>", line 1, in <module>
AttributeError: 'module' object has no attribute 'getsitepackages'
Sí, uno de los aspectos más feos de la implementación de virtualenv es que tiene que tener su propia copia del módulo del sitio, que se usa para todos los virtualenvs, independientemente de la versión de Python con la que se hayan creado. Y esta copia es anterior a la adición de site.getsitepackages()
(creo que se agregó por primera vez en Python 2.7).
No tendría ninguna objeción a que una solicitud de extracción agregue esa función al módulo del sitio de virtualenv, siempre que la implementación sea una que pueda funcionar en todas las versiones de Python compatibles con virtualenv (2.4 a 3.3a). O si eso es demasiado difícil debido a la falta de API en otras áreas de las versiones anteriores de Python, tal vez defina condicionalmente dependiendo de sys.version
o algo así.
duplicado #355
cerrando como tonto al # 355, ya que es más genérico.
tiene este problema con 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'
no duplicado de # 355
Comentario más útil
Sí, uno de los aspectos más feos de la implementación de virtualenv es que tiene que tener su propia copia del módulo del sitio, que se usa para todos los virtualenvs, independientemente de la versión de Python con la que se hayan creado. Y esta copia es anterior a la adición de
site.getsitepackages()
(creo que se agregó por primera vez en Python 2.7).No tendría ninguna objeción a que una solicitud de extracción agregue esa función al módulo del sitio de virtualenv, siempre que la implementación sea una que pueda funcionar en todas las versiones de Python compatibles con virtualenv (2.4 a 3.3a). O si eso es demasiado difícil debido a la falta de API en otras áreas de las versiones anteriores de Python, tal vez defina condicionalmente dependiendo de
sys.version
o algo así.