私はパーティクルの反応をユーザーに教える目的で、パーティクルの反応をシミュレートするプログラムを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"
を使用します。
私はこれらの詳細を提供するために私の質問を編集しました。残念ながら私はアップロードする画像を取得することはできません、そうでなければ私はあなたに実際のファイルを示していたでしょう... –
あなたのsetup.pyはどのように見えますか? Cython.Buildインポートcythonizeからdistutils.core輸入セットアップ から – ead
#cythonセットアップファイル セットアップ(ext_modules = cythonize(MYFILEPATH.pyx)) 私は私の.pyxファイルをコンパイルし、その後から結果.pydファイルを移動します私のpythonフォルダを私のメインフォルダ(前に参照したもの)の中に入れてください –