Я успешно использую пакет математического моделирования coopr.pyomo
как в файлах сценариев, так и в интерактивном режиме на ipython-консоль. Однако, если я попытаюсь выполнить простой import coopr.pyomo
в блокноте IPython, запущенном ipython notebook
, я получу следующее сообщение об ошибке:
ImportError Traceback (most recent call last)
<ipython-input-1-ff8219fceacd> in <module>()
----> 1 import coopr.pyomo
ImportError: No module named pyomo
Другие импорты (как встроенные, так и пользовательские пакеты) работают без проблем. Есть идеи, где искать причину?
Среда: Python 2.7 (32-разрядная версия) в Windows 7, IPython 0.13.2, выпуск Coopr 3.2.6148.
Изменить: больше диагностики
Действительно, 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) файлами.
Правка № 2: это становится ближе (я думаю)
Проблема, по-видимому, вызвана своеобразным способом работы установщика Coopr для Windows. Согласно примечаниям по установке, 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 Notebook — хотя путь поиска идентичен — кажется, запутался в том, как организованы пакеты.
site-packages
, а не путем запускаpython setup.py install
. - person   schedule 16.07.2013