Я использую 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 пытается найти distutils_path
в версии Python системы Mac OSX, не моей версии virtualenv, как должно быть.
Не уверен, почему это внезапно началось. Может быть, недавнее обновление OSX? Другая возможность заключается в том, что мой жесткий диск вот-вот умрет, поэтому Apple предоставила мне новый и запустила Помощник по миграции. Может что-то не правильно передал?
distutils_path = os.path.join(os.path.dirname(ConfigParser.__file__), 'distutils')
Я действительно понятия не имею, как это работает, но похоже, чтоConfigParser
указывает на системный python OSX, тогда как он должен указывать на мой virtualenv. - person Kyle Fox   schedule 28.06.2010