Virtualenv 不能继承 GetSitePackages() 属性

Virtualenv can not inherit GetSitePackages() Attribute

我刚刚在 Mac OSX El Capitan 上的 VirtualEnv 下安装了 TensorFlow。现在,我正尝试通过 tensorflow.org 网站中给出的示例来理解结构。

我是 python 及其语法的新手。但据我所知,名为 getsitepackages() 的属性对于轻松列出模块的属性来说很重要。但是由于它的默认 python 和 el capitan 上的 virtualenv 版本,virtualenv 似乎无法继承名为 "site".

的模块的 getsitepackages() 属性

因此我无法运行简单的示例命令 (python -c 'import site; print("\n".join(site.getsitepackages()))') 来定位 tensorflow 库。

我想这是一个已知错误,但我找不到解决此问题的方法。我只是想知道是否有人已经提出并解决了这个问题?

P.S。在 virtualenv getsitepackages() 之外工作正常。但是在 virtualenv 中我得到以下错误

python -c 'import site; print("\n".join(site.getsitepackages()))'

Traceback (most recent call last):

File "< string >", line 1, in < module >

AttributeError: 'module' object has no attribute 'getsitepackages'

这似乎是 sites.py 的一个问题,它可以追溯到 2012 年。如前所述 here

尝试使用不同的 python 版本创建 virtualenv。例如:

virtualenv -p python3 virtualenvname

值得检查一下您 运行 正在使用的 python 版本 (python --version)。这似乎只是 python2.7 的问题 - 像 python2.6 这样的早期版本没有遇到这个问题,但是它们缺少在 python2.7.

中添加的很多有用的包

我的建议是 运行 它在 python3python3.4 下。 TensorFlow 似乎支持 python30.6.0 release.

希望对您有所帮助!