Windows环境下在Rust项目中安装Python共享库及解决DLL缺失报错
解决Windows下Rust+PyO3项目的Python共享库问题及STATUS_DLL_NOT_FOUND报错
一、安装对应版本的Python共享库
Windows下PyO3需要的Python共享库是pythonXX.dll(XX为Python版本号,比如Python3.10对应python310.dll),获取方式如下:
- 官方Python安装包:安装Python时必须勾选
Add Python to PATH,若需Debug构建还要勾选Download debug binaries (requires VS 2017 or later)。安装完成后,pythonXX.dll位于Python安装目录的\DLLs文件夹中,默认安装会自动将Python目录加入系统PATH。 - Conda环境:激活目标Conda环境后,
pythonXX.dll在环境目录的\Library\bin下,需确保该路径被添加到系统PATH。
注意:必须保证Python版本与PyO3依赖的版本完全一致,不可混用。
二、解决STATUS_DLL_NOT_FOUND报错
该报错是因为程序无法找到Python的DLL文件,按以下步骤排查:
- 检查PATH配置:
打开命令提示符,输入echo %PATH%,确认Python安装目录(如C:\Python310)和\DLLs子目录(或Conda环境的\Library\bin)已在PATH中。若未添加,执行以下命令(替换为你的实际路径):
设置完成后需重启命令提示符或IDE。setx PATH "%PATH%;C:\Python310;C:\Python310\DLLs" - 确认PyO3配置:
在项目的Cargo.toml中指定正确的Python版本,示例:
其中[dependencies] pyo3 = { version = "0.20", features = ["python310", "auto-initialize"] }python310需替换为你实际使用的Python版本对应的feature。 - 获取pytest.exe:
pytest.exe是Rust项目的构建产物,在项目根目录执行cargo build(Debug构建)后,文件会生成在target\debug\目录下;若执行cargo build --release(Release构建),则生成在target\release\目录下。若未生成,先排查cargo build的编译错误并修复。
三、验证流程
- 执行
cargo clean清理旧构建文件,再运行cargo build重新构建。 - 在命令提示符中切换到项目根目录,运行
target\debug\pytest.exe。 - 若仍报错,检查PyO3版本与Python版本的兼容性(参考PyO3版本兼容规则)。
内容的提问来源于stack exchange,提问作者ninetynin
相关产品推荐
相关产品推荐

