C++程序运行Python脚本调试记录

目录

背景:

遇到的问题:

1. 找不到python39_d.dll

2. 多个python环境下使用指定的pip

3. 导入numpy报错:Original error was: DLL load failed while importing _multiarray_umath

其他


背景:

最近需要开发一个C++程序,运行中调用python脚本进行数据处理。期间遇到一些问题,将解决过程记录如下,方便以后查阅,也为他人提供参考。如果有更好的解决办法,欢迎指教。

开发环境:Windows 10 + Visual Studio 2022 + Python3.9

遇到的问题:

1. 找不到python39_d.dll

一开始为了调试,自然是Debug配置下运行。报错找不到python39_d.dll,这个很明显是找不到debug版本的python动态链接库

我的python是通过anaconda直接安装的,没有debug版本,到python官网下载对应版本的安装包,安装时选项里有debug啥啥啥的,把它选上,安装目录下就能找到python39_d.dll了

2. 多个python环境下使用指定的pip

如果同时安装了多个python环境,pip install xxx可能会把包安装到别的python环境中

在控制台中输入pip -V可以确认当前所使用的pip所在路径,pip install会把包安装在所在环境的Lib/site-packages下面

修改环境变量的优先级,确保指定的python环境的路径高于其他环境,重启控制台就能使用对应的pip了

3. 导入numpy报错:Original error was: DLL load failed while importing _multiarray_umath

import numpy的时候,即使确保使用的python环境下已经安装了numpy且版本无误,在控制台中能够成功import numpy,在C++程序中调用python脚本时依然可能导入失败,如图:

下面这篇文章,通过修改文件,绕过Python的Debug配置,但是我试了没有效果Windows C++中嵌入Python脚本含import numpy等库出现问题_DoronLee的博客-CSDN博客_c++调用python脚本importC++调用Python脚本问题在C++中调用Python脚本如果使用第三方库,如import numpy/ PIL/ scipy/ opencv/ PIL/ matplotlib等这些库文件时可能就会出现如下图所示错误:在VS中使用64位debug版,而且是debug版有问题,而release版没有问题(后来发现的release版可以正常运行)如果release版也有类似问题,那么我的方法估计不会https://blog.csdn.net/DoronLee/article/details/78188094

这个问题是跟Debug配置有关的,在Release配置下没有这个问题。我现在是将所有与python脚本相关的C++代码放在了#ifndef DEBUG里面,在DEBUG配置下自动忽略python部分,调试其他代码。python代码部分另行编写测试脚本,在Visual studio code中进行调试

其他

python安装pip install报错Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirm_SevenBerry的博客-CSDN博客pycharm使用 pip install xxx安装包时,一直报错:WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLEOFError(8, 'EOF occurred in violationof protocol (_ssl.c:1123)'))': /simple/flask/WARN.https://blog.csdn.net/SevenBerry/article/details/121088835pip的下载地址貌似被墙了,下载的时候连接失败。使用上面这个网站的第一个镜像成功安装numpy,贴在了下面。写这篇文章的时候(2022年3月11日)这个镜像仍然有用,速度很快

pip install numpy -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值