【发布时间】:2019-08-23 22:48:18
【问题描述】:
我正在尝试对 NASA 的 CEA 代码使用 rocketcea(通过 pip 安装而不是克隆 git)包装器,但是当我尝试运行他们的示例代码时,我在标题中收到以下错误:
#example code
from rocketcea.cea_obj import CEA_Obj
C = CEA_Obj( oxName='LOX', fuelName='LH2')
for mr in range(2,9):
print(mr, C.get_Isp(Pc=100.0, MR=mr, eps=40.0) )
产生的错误(Python 3.7 从 PyCharm IDE 启动):
Traceback (most recent call last):
File "C:/Users/George/Documents/SpaceportTXV/cea test/cea import.py", line 1, in <module>
from rocketcea.cea_obj import CEA_Obj
File "C:\Users\George\AppData\Local\Programs\Python\Python37-32\lib\site-packages\rocketcea\cea_obj.py", line 51, in <module>
import rocketcea.py_cea as py_cea
ImportError: DLL load failed: The specified module could not be found.
我正在使用 MinGW GCC 编译器套件,并且我已将 bin 和 lib 作为 Rocketcea recommends 添加到我的 PATH 以解决此问题。
我的路径:
C:\Users\George>echo %PATH%
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft VS Code\bin;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files\Microsoft SQL Server\120\DTS\Binn\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Users\George\AppData\Local\Programs\Python\Python37-32\Scripts\;C:\Users\George\AppData\Local\Programs\Python\Python37-32\;C:\Users\George\AppData\Local\Microsoft\WindowsApps;C:\Users\George\AppData\Local\Programs\mingw\mingw64\bin;C:\Users\George\AppData\Local\Programs\mingw\mingw64\lib;
如果有帮助,link 我的 Rocketcea 文件夹包含的内容。
如果有人对我出现此错误的原因有任何见解,我将不胜感激。我还可以添加任何可能有用的其他信息
【问题讨论】:
-
这真的是你的 %PATH% 环境变量吗? System32(或 .dll 所在的其他标准路径)在哪里?我建议也粘贴来自
echo %PATH%的输出,以及如何启动Python。 (还有${PATH_TO_YOUR}python -c "import sys;print(sys.version)")。你从哪里启动(cmd,其他终端)? -
有时 DLL 错误是由缺少依赖 DLL 引起的。来自解释语言的错误消息通常很难告诉你这一点。下载Dependency Walker 并让它分析您的DLL。专门寻找缺少的依赖项,不要被它报告的其他一些事情所困扰。
-
请添加缺少的信息:[SO]: How to create a Minimal, Reproducible Example (reprex (mcve))。您提到使用 MinGW32 构建工具套件。您正在用它构建包(部分)。你用的是什么Python?
-
我已经更改了我添加的关于 PATH 和 Python 版本的信息。我对 DLL 不是很熟悉,因为我只为科学目的编写代码,所以我不确定如何处理 Dependency Walker。
标签: python dll installation fortran wrapper