スクリプト ファイルと ipython コンソールの両方で、数学モデリング パッケージ を正常に使用しています。ただし、によって開始された IPython ノートブックでcoopr.pyomo
シンプルにしようとすると、次のエラー メッセージが表示されます。import coopr.pyomo
ipython notebook
ImportError Traceback (most recent call last)
<ipython-input-1-ff8219fceacd> in <module>()
----> 1 import coopr.pyomo
ImportError: No module named pyomo
その他のインポート (buitlin とカスタム パッケージの両方) は問題なく動作します。原因を探すためのアイデアはありますか?
環境: Windows 7 上の Python 2.7 (32 ビット)、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 インストーラーがどのように動作するかという独特の方法によって引き起こされているようです。Installation Notesによると、Coopr は独自の仮想サンドボックスにカプセル化されています。これは、デフォルトのインストール ディレクトリの提案CH :=によって下線が引かれていますC:/Packages/Coopr
。前回は、このサインを無視して、単純に Python のsite-packages
フォルダーにインストールしました。ここで、テストのために、Coopr をこの外部ディレクトリに再インストールしました。Coopr/Pyomoは、 CHsys.path
ディレクトリのすべてのサブディレクトリによって拡張されるため、(I)Python セッション内から正常にインポートできます。/src/
ただし、これらのサブディレクトリは、私が慣れ親しんでいる他のパッケージとは異なって見えます。たとえば、src/coopr.pyomo には setup.py しか含まれていませんが、CH__init__.py
に置かれています。IPython はパッケージを見つけることができるように見えますが、IPython ノートブックは (検索パスは同じですが) パッケージの編成方法に混乱しているようです。/src/coopr.pyomo/coopr/pyomo