2012-07-02 3 views
1

Моя система: Mac OS X 10.6.8, GCC 4.2, питон 2.7, Xcode 3.2.3Может импортировать ObjC модуль в Python 2.6, но не в питона 2,7

Я использую Python 2.7 и я получил ошибку, когда пытался do: , он возвращается: ImportError: No module named objc.

Похоже, что модуль objc отсутствует. Но на самом деле у меня уже установлен модуль objc. Snow Leopard имеет предустановленный pyobjc, и я также проверил его с помощью python2.6 (у меня есть python 2.7 и 2.6 на моем Mac). Поэтому, если я вызываю с использованием python2.6, у меня нет ошибки, которая означает, что существует objc, и я могу использовать этот модуль без проблем ... но если я импортирую с помощью python 2.7, я получу ошибку ImportError: No module named objc.

У кого-нибудь есть решение? FYI, python2.6 поставляется с предустановленной OS X, а 2.7 - вручную. Я использую 2.7 в течение нескольких месяцев без проблем.

+0

возможный дубликат [Нет модуля с именем ObjC] (http://stackoverflow.com/questions/4678186/no-module -named-objc) –

ответ

4

Модули расширения Python C, такие как objc, не могут быть повторно использованы между версиями python. Вам нужно будет установить модуль objc для 2.7 отдельно.

Как правило, различные установки python (например, 2.6 или 2.7 или 3.2) используют отдельные места импорта модулей, и вы обычно устанавливаете расширения за настройкой python.

2

В общем, пакеты, установленные с одной установкой python, недоступны для других установок python. Вы можете сделать их доступными, возившись с sys.path (или установив PYTHONPATH в вашей среде) и, тем самым, установив свои модули в обычное место, как указано в @MartijnPieters, если это расширение C, постройте модуль для python 2.7 (а затем вы не можете разместить его в общем месте). Как правило, это так же просто, как:

<sudo> python2.6 setup.py install #install for python 2.6 
<sudo> python2.7 setup.py install #install for python 2.7 

с командой python, как правило, только (мягкая) ссылка на предпочтительную вашей установки питона.

sudo может быть или не быть необходимым в зависимости от того, где ваши реализации python живут на вашем пути.

Это тоже работает для чистых модулей python. Поскольку исходный код обычно не занимает слишком много места, это может быть хорошим способом установки всех ваших модулей, если вы будете переключаться между python 2.6 и python 2.7.

То же самое происходит, если вы используете easy_install установить ваши пакеты:

easy_install-2.6 somepackage 
easy_install-2.7 somepackage 
+0

в терминале, когда я пишу python, он показывает 2.7.2. Как проверить другую версию python, которая предварительно установлена ​​на mac – imp

 Смежные вопросы

  • Нет связанных вопросов^_^