我正在用python編寫一個程序來模擬粒子的反應,目的是教導用戶關於粒子反應。由於python在進行必要的處理時速度太慢,我轉向Cython尋求提高速度的方法,並且它很有用。我可以將我的.pyx
文件編譯爲.pyd
文件,該文件可以通過簡單的import
語句(即「導入模塊」)從python導入和運行。Cython pyd文件不能通過python導入
但是,該程序最終必須在另一個人的計算機上運行,並且在此計算機上,將不會導入該文件.pyd
。當我嘗試我收到此錯誤信息:
"ImportError: DLL load failed: The specified module could not be found."
的.pyd
文件是完全相同的兩臺計算機上的相同位置,但是,我正在運行的Python 3.6,而在另一臺計算機上安裝有Python 3.3。另外,我的電腦安裝了Cython,而另一臺電腦則沒有。這兩臺機器都是32位的。
我不能簡單地將整個程序編譯爲.exe
文件,因爲其他計算機在.exe
文件上有塊。
我已經瀏覽了關於Cython的堆棧問題,並且還研究了Cython文檔,但都無濟於事。
有人可以向我解釋爲什麼導入不起作用,以及我如何才能使其工作?關於.pyd
文件的一些額外背景以及python如何調用它們也會很好。
編輯:我從名爲main.py的文件運行該程序。在同一個目錄中,我有一個名爲main的文件夾,它存儲我在模塊中使用的代碼。 main.py調用PageManager.py,調用ParticleModel.py,調用MoveParticles.pyd。 (這三個文件存儲在文件夾主文件夾中)。我使用聲明
"import main.MoveParticles"
導入.pyd文件,它在我的電腦上工作。
我編輯了我的問題以提供這些詳細信息。不幸的是,我無法獲取圖片上傳,否則我會告訴你實際的文件... –
你的setup.py的外觀如何?從進口distutils.core設置 從Cython.Build進口cythonize – ead
#cython設置文件 設置(ext_modules = cythonize(MYFILEPATH.pyx)) 我編譯我.pyx文件,然後從移動所得.pyd文件我的Python文件夾到我的主文件夾(以前引用) –