Qualquer virtualenv, com ou sem --system-site-packages
, me dá:
% python -c 'import site; site.getsitepackages()'
Traceback (most recent call last):
File "<string>", line 1, in <module>
AttributeError: 'module' object has no attribute 'getsitepackages'
Sim, um dos aspectos mais feios da implementação do virtualenv é que ele precisa ter sua própria cópia do módulo do site, que é usado para todos os virtualenvs, independentemente da versão do Python com a qual eles são criados. E esta cópia é anterior à adição de site.getsitepackages()
(adicionada pela primeira vez no Python 2.7, acredito).
Eu não teria objeção a uma solicitação pull adicionando essa função ao módulo de site do virtualenv, desde que a implementação seja uma que possa funcionar em todas as versões do Python suportadas pelo virtualenv (2.4 a 3.3a). Ou se isso for muito difícil devido à falta de APIs em outras áreas das versões anteriores do Python, talvez tenha definido condicionalmente dependendo de sys.version
ou algo assim.
duplicata #355
fechando como dupe para #355, já que é mais genérico.
tem esse problema com o 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'
não duplicado de #355
Comentários muito úteis
Sim, um dos aspectos mais feios da implementação do virtualenv é que ele precisa ter sua própria cópia do módulo do site, que é usado para todos os virtualenvs, independentemente da versão do Python com a qual eles são criados. E esta cópia é anterior à adição de
site.getsitepackages()
(adicionada pela primeira vez no Python 2.7, acredito).Eu não teria objeção a uma solicitação pull adicionando essa função ao módulo de site do virtualenv, desde que a implementação seja uma que possa funcionar em todas as versões do Python suportadas pelo virtualenv (2.4 a 3.3a). Ou se isso for muito difícil devido à falta de APIs em outras áreas das versões anteriores do Python, talvez tenha definido condicionalmente dependendo de
sys.version
ou algo assim.