Я использую mathematical modelling packagecoopr.pyomo
успешно в обоих файлах сценариев и интерактивно на консоли ipython. Однако, если я пытаюсь простой import coopr.pyomo
в записной книжке IPython начатой ipython notebook
, я получаю следующее сообщение об ошибке:Ошибка импорта в ноутбуке IPython только с coopr.pyomo
ImportError Traceback (most recent call last)
<ipython-input-1-ff8219fceacd> in <module>()
----> 1 import coopr.pyomo
ImportError: No module named pyomo
Другие импорта (как buitlins и пользовательские пакеты) работают без проблем. Есть идеи, где искать причину?
Окружающая среда: Python 2.7 (32 бит) для Windows 7, IPython 0.13.2, выпуск Coopr 3.2.6148.
Edit: больше диагностического
Действительно, coopr может быть импортирован, но не имеет __file__
атрибут. Если я показываю __dict__
, я получаю правильный путь:
{'__name__': 'coopr',
'data': <module 'coopr.data' (built-in)>,
'__doc__': None,
'__path__': ['C:\\Python27\\lib\\site-packages\\coopr']}
Если я просматриваю в этом каталоге, я считаю, что все подмодули (например coopr.pyomo) расположены в подкаталоге src
. data
кажется ложным каталогом с некоторыми тестовыми (test_baselines.py, test_perf.py) и примерными (diet1.py) файлами.
Edit # 2: она становится все ближе (я думаю)
Проблема, кажется, вызвана особым образом как работает окна инсталлятор Coopr. Согласно Installation Notes, Coopr сидит в своей виртуальной песочнице. Это подчеркнуто его предложением по умолчанию для установки CH: = C:/Packages/Coopr
. В прошлый раз я проигнорировал этот знак и просто установил его в папку Python site-packages
. Теперь для тестирования я снова установил Coopr в этот внешний каталог. Coopr/Pyomo по-прежнему можно успешно импортировать изнутри (I) Python-сессии, так как sys.path
распространяется на все подкаталоги каталога CH/src/
.
Однако эти подкаталоги отличаются от других пакетов, к которым я привык. Например, src/coopr.pyomo содержит только setup.py, а __init__.py
находится в CH/src/coopr.pyomo/coopr/pyomo
. Хотя IPython, похоже, может найти пакеты, IPython-ноутбук, хотя путь поиска идентичен, кажется, путается тем, как организованы пакеты.
Как вы установили пакет? Ваш последний абзац описывает его, как будто он был скопирован из источника прямо в каталог 'site-packages', а не запущен' python setup.py install'. – Evert
Использование официального [установщика] (https://software.sandia.gov/trac/coopr/downloader/download/file/52). Я пересмотрел процедуру, см. Редактировать №2 для получения дополнительной информации. – ojdo