2017-09-24 7 views
1

私はパーティクルの反応をユーザーに教える目的で、パーティクルの反応をシミュレートするプログラムをPythonで作成しています。 Pythonが必要な処理を行うには遅すぎるので、私は速度向上のためにCythonに目を向けると、それは治療になりました。 .pyxファイルを.pydファイルにコンパイルすることができます。このファイルは、単純なimportステートメント(「インポートモジュール」)でPythonからインポートして実行できます。PythonからインポートしていないCythonのpydファイル

ただし、プログラムは最終的に別の人のコンピュータで実行する必要があり、このコンピュータでは.pydファイルはインポートされません。私がしようとしたとき、私は、このエラーメッセージが表示されます:

"ImportError: DLL load failed: The specified module could not be found." 

.pydファイルは、他のコンピュータにインストールさのpython 3.3を有しているが、私のpython 3.6を実行しています、両方のコンピュータで正確に同じ場所にあります。また、私のコンピュータにはCythonがインストールされ、他のコンピュータにはインストールされていません。どちらのマシンも32ビットです。

他のコンピュータに.exeファイルのブロックがあるので、プログラム全体を.exeファイルに単純にコンパイルすることはできません。

私はCythonに関するスタックの質問を巡り巡り、Cythonのドキュメントも勉強しましたが、無駄なことはありません。

なぜインポートがうまくいかないのか、どうすればそれを動作させることができるのか説明できますか?正確には.pydファイルのいくつかの追加の背景とどのようにそれらを呼び出すPythonもいいだろう。

編集:私はmain.pyと呼ばれるファイルからプログラムを実行します。同じディレクトリにmainというフォルダがあります。これはモジュールで使用するコードを格納しています。 main.pyはPageManager.pyを呼び出し、これはMoveParticles.pydを呼び出すParticleModel.pyを呼び出します。 (これら3つのファイルはメインフォルダに格納されています)。私はコンピュータ上で動作する.pydファイルをインポートするには

"import main.MoveParticles" 

を使用します。

+0

私はこれらの詳細を提供するために私の質問を編集しました。残念ながら私はアップロードする画像を取得することはできません、そうでなければ私はあなたに実際のファイルを示していたでしょう... –

+0

あなたのsetup.pyはどのように見えますか? Cython.Buildインポートcythonizeからdistutils.core輸入セットアップ から – ead

+0

#cythonセットアップファイル セットアップ(ext_modules = cythonize(MYFILEPATH.pyx)) 私は私の.pyxファイルをコンパイルし、その後から結果.pydファイルを移動します私のpythonフォルダを私のメインフォルダ(前に参照したもの)の中に入れてください –

答えて

0

ここでの難しさは、DLLが不足している混乱から生じました。

本質的にはDLL(Python C extension: Use extension PYD or DLL?)である.pydファイルをインポートしようとしていたため、これが原因でエラーが発生していたと思います。

しかし、実際にエラーを引き起こしていたのは、自分の.pydファイルを実行するために必要なDLLがないことでした。私は別のバージョンのPython(正確には3.5)を使用して問題を解決し、Python 3.5で動作するように.pydファイルを再コンパイルした後、アプリケーションは処理を行いました。

要約:私のファイルを実行しようとしているコンピュータは、必要なDLLが不足しているため、プログラムがクラッシュしました。

関連する問題