Я столкнулся с этой distutils/__init__.py
проблемой при переходе на OS X 10.7 Lion (из OS X 10.5 Leopard) и использовании Migration Assistant.Я уже установил Xcode 3.2.6 - таким образом решая отсутствующую проблему install_name_tool.
Помощник по миграции перенес мои предыдущие virtualenv, но, поскольку они были основаны на Python 2.5 от Leopard, я считаю, что мне нужно воссоздать каждый изони с текущей системой Python 2.7.
easy_install уже был в PATH - вероятно, потому что он был в комплекте с Lion's Python 2.7;кажется маловероятным, что это будет результатом Migration Assistant.Я использовал easy_install для установки virtualenv.
Эта проблема, как мне кажется, не имеет ничего общего с Xcode или его отсутствием.Это особая строка в файле, помещенном в новый виртуальный env с помощью команды virtualenv:
File "/path/to/my/virtualenv/lib/python2.7/distutils/__init__.py", line 16, in
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.7/lib/python2.7/distutils/__init__.py'
Проблема заключается в том, что при установке Python 2.7 в комплекте с Lion библиотека не поставляется с .pyисходные файлы.В этом каталоге содержатся файлы .pyc и .pyo, но нет файлов .py.Кажется, virtualenv этого не ожидает.
Мой обходной путь - загрузить исходный код Python 2.7:http://python.org/ftp/python/2.7.2/Python-2.7.2.tar.bz2
и распакуйте distutils/__init__.py
в ожидаемое место:
sudo tar xvjf ~/Downloads/Python-2.7.2.tar.bz2 --strip-components=2 -C /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7 <code>Python-2.7.2/Lib/distutils/__init__.py
Это позволяет virtualenv успешно завершаться, и итоговый интерпретатор Python, похоже, запускается.
Учитывая, что библиотека Python 2.7 в комплекте с Lion установлена без исходного кода, она можеткажется полезным изменить virtualenv, чтобы попробовать либо distutils/__init__.py
, либо distutils/__init__.pyc
?