【发布时间】:2011-03-08 23:24:13
【问题描述】:
我一直在使用 virtualenv + pip 进行 python 开发。我不确定发生了什么,但突然每当我尝试运行命令行工具或导入库时,我都会收到以下错误消息:
Traceback (most recent call last):
File "/Users/kyle/.virtualenvs/fj/bin/pip", line 4, in <module>
import pkg_resources
File "/Users/kyle/.virtualenvs/fj/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg/pkg_resources.py", line 698, in <module>
the platform/python version defined at initialization are added.
File "/Users/kyle/.virtualenvs/fj/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg/pkg_resources.py", line 701, in Environment
search_path = sys.path
File "/Users/kyle/.virtualenvs/fj/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg/pkg_resources.py", line 96, in get_supported_platform
'Environment', 'WorkingSet', 'ResourceManager',
File "/Users/kyle/.virtualenvs/fj/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg/pkg_resources.py", line 221, in get_build_platform
if provDarwin:
File "/Users/kyle/.virtualenvs/fj/lib/python2.6/distutils/__init__.py", line 14, in <module>
exec open(os.path.join(distutils_path, '__init__.py')).read()
IOError: [Errno 2] No such file or directory: '/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/__init__.py'
据我所知,Python 试图在 Mac OSX 系统版本 Python 中找到 distutils_path,不是我的 virtualenv 版本应该是。
不知道为什么会突然发生这种情况。也许最近的 OSX 更新?另一种可能是我的硬盘快要死了,所以苹果给了我一个新的并运行了迁移助手。也许有些东西没有正确传输?
【问题讨论】:
-
在查看 distutils/__init__.py 之后,它正在这样做:
distutils_path = os.path.join(os.path.dirname(ConfigParser.__file__), 'distutils')我真的不知道这是如何工作的,但似乎ConfigParser指向 OSX 系统 python,它应该是指向我的 virtualenv。 -
不知道这是否对任何人都有帮助,但是 Homebrew 安装了很好的 python 和 virtualenv 看看这个。 gist.github.com/pithyless/1208841
标签: python macos virtualenv distutils