2

scipy.weavePython コードを .exe ファイルにパッケージ化する最初の試みの 1 つで、モジュールを使用したコードのパッケージ化と実行で問題が発生しました。warnproject.txt を確認すると、1324 行の警告が表示されます (以下に数行を示します)。

W: no module named numpy.negative (top-level import by scipy.weave.size_check)
W: no module named numpy.asarray (top-level import by scipy.optimize.nonlin)
W: no module named termios (top-level import by tty)
W: no module named scipy.arange (conditional import by scipy.sparse.linalg.isolve.minres)
W: no module named numpy.polyder (top-level import by scipy.signal.signaltools)
W: no module named matplotlib.rcParams (top-level import by matplotlib.figure)
etc...

最初の質問: プログラムが部分的に正常に動作しているのに、これほど多くの警告が表示されるのはなぜですか?

2 番目の質問: これらのモジュールを正しい方法でインポートするにはどうすればよいですか? 私のproject.specファイルに書いたのですexe = EXE(..., a.binaries + [('scipy.weave', 'C:\Python27\Lib\site-packages', 'PYMODULE')], ...)が、モジュールが見つからず、ファイルをパッケージ化できませんか?

4

1 に答える 1

1

1 つの方法は、Analysis オブジェクトのフックオプションを使用することです。これにより、分析 (特に依存関係のリストをコンパイルする担当者) は、フックからのモジュールがインポートされていると見なす必要があるため、強制されます。

a = Analysis(['myscript.py'], hookspath='/my/priv/hooks')

フックファイルは単純なテキスト ファイルです。

一方、そのような警告がたくさんあり、私のアプリケーションは Linux と Windows で実行され、インポート関連の問題はありません。

于 2013-03-05T15:14:43.877 に答える