Импорт Python работает в интерпретаторе, не работает в скрипте Numpy / Matplotlib - PullRequest
1 голос
/ 22 марта 2012

Я работаю на OSX Snow Leopard и запускаю 2.7 в моих сценариях, а интерпретатор, похоже, работает на 2.6

Прежде чем я смог импортировать numpy, но при попытке импортировать matplotlib я получаю сообщение об ошибкепоэтому я отправился на поиски решения и обновил свою переменную PYTHONPATH, но я думаю, что сделал это неправильно и теперь просто все испортил.

Вот что я получаю, когда пытаюсь импортировать numpy в свой скрипт:

Traceback (последний вызов был последним): файл "./hh_main.py", строка 5, в файле импорта numpy "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7 / site-> packages / numpy / init .py ", строка 137, в файле импорта add_newdocs" /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site->packages / numpy / add_newdocs.py ", строка 9, из файла numpy.lib для импорта файла add_newdoc" /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site->packages/numpy/lib/ init .py ", строка 4, из проверки type_check import * File" / Library / Frameworks / Python.framework / Versions / 2.7 / lib / python2.7 / site-> packages / numpy / lib / type_check.py ", строка 8, в импорте numpy.core.numeric в виде файла _nx" / Библиотека / Frameworks / Python.framework / Versions / 2.7 / lib / python2.7 / site-> packages / numpy / core / init .py ", строка 5, в многострочном импорте importError: dlopen (/ Library / Frameworks / Python.framework / Версии / 2.7 / lib / python2.7 / site-> packages / numpy / core / multiarray.so, 2): символ не найден: _PyCapsule_Import Ссылка на: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site->packages/numpy/core/multiarray.so Ожидается в: плоском пространстве имен в /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site->packages/numpy/core/multiarray.so

Кроме того, это то, что я получаю из sys.path в интерпретаторе:

['', '/ Users / joshuaschneier / Documents / python_files', '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages', '/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip ',' /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7 ',' /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin ', '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages ',' /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk ',' /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old ',' /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload']

И это мой PYTHONPATH, который, я думаю, я обновил неправильно:

: / Библиотека / Каркасы / Python.framework / Версии / 2.7 / lib / python2.7 / site-packages /

Спасибо за любую помощь.

1 Ответ

1 голос
/ 22 марта 2012

Обычно вам нужно будет установить numpy, matplotlib и т. Д. Для каждой используемой вами версии python, так как она будет установлена ​​в конкретный каталог 'python2.x / site-packages'.

Вышеуказанный вывод генерируется из сеанса 2.6 или 2.7?Если это сеанс 2.6, то да, указание вашей PYTHONPATH на 2.7 не сработает - numpy включает скомпилированный код C (например, файл multiarray.so), который будет создан для конкретной версии python.

Если вы не хотите поддерживать два набора пакетов, я бы порекомендовал установить numpy, matplotlib и т. Д. Для версии 2.7, убрав этот параметр PYTHONPATH и убедившись, что сеансы сценариев и интерпретатора используют версию 2.7.

Если вы хотите сохранить обе версии, вам просто нужно установить каждый пакет дважды (и вам, вероятно, все еще не помешает отменить изменение PTYHONPATH)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...