Virtualenv: “站点”没有属性“getsitepackages”

创建于 2012-02-24  ·  4评论  ·  资料来源: pypa/virtualenv

任何 virtualenv,无论是否有--system-site-packages ,都会给我:

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

最有用的评论

是的,virtualenv 实现的一个更丑陋的方面是它必须拥有自己的站点模块副本,该副本用于所有 virtualenvs,无论它们是使用哪个版本的 Python 创建的。 这个副本早于site.getsitepackages()的添加(我相信是在 Python 2.7 中首次添加的)。

我不会反对将这个函数添加到 virtualenv 的站点模块的拉取请求,只要该实现可以在所有支持 virtualenv 的 Python 版本(2.4 到 3.3a)上运行。 或者,如果由于早期 Python 版本的其他领域缺少 API 而这太难了,也许可以根据sys.version或其他东西有条件地定义它。

所有4条评论

是的,virtualenv 实现的一个更丑陋的方面是它必须拥有自己的站点模块副本,该副本用于所有 virtualenvs,无论它们是使用哪个版本的 Python 创建的。 这个副本早于site.getsitepackages()的添加(我相信是在 Python 2.7 中首次添加的)。

我不会反对将这个函数添加到 virtualenv 的站点模块的拉取请求,只要该实现可以在所有支持 virtualenv 的 Python 版本(2.4 到 3.3a)上运行。 或者,如果由于早期 Python 版本的其他领域缺少 API 而这太难了,也许可以根据sys.version或其他东西有条件地定义它。

重复 #355

关闭为#355,因为它更通用。

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'

不重复 #355

此页面是否有帮助?
0 / 5 - 0 等级