vs2017引用anaconda虚拟环境中的python第三方库

近期的任务要在c++工程里调用python,python文件里还使用了opencv,numpy,pytorch等第三方库。
自己的这些第三方库是通过anaconda虚拟环境安装的(该环境名称为labelme,下面要提到这个,请牢记这个环境名称),所以在调用的时候也要通过该虚拟环境安装,自己尝试将项目属性里直接加入该虚拟环境下的python,但是一直有问题,python自带的库如sys库等可以成功import,但是诸如cv2等第三方库一直加载不上。我设置的路径为这个
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在代码里加入如下两行

PyRun_SimpleString("import sys");
 PyRun_SimpleString("print(sys.path)");//用于输出当前使用的python路径

按理来说,我的python路径应该为我上述图配置的那些,但是他的输出结果是
在这里插入图片描述

发现真实使用的python版本和项目属性里的python版本不同!!!
于是开始更改属性里的python路径,更改了多个python路径,到最后也无济于事,真实使用的python路径一直是这个C盘下面的。
于是又开始更改C盘下这个路径里的python,将"C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64"这个文件里的python替换为创建的虚拟环境里的python,最初做法为将"D:\Software\anaconda3\pkgs\python-3.6.10-he025d50_1009_cpython"文件夹替换"C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64"该文件夹,并将替换后的文件重命名为Python36_64,发现还是找不到第三方库。
在网上搜索第三方库安装在site_packages中,检查D:\Software\anaconda3\pkgs\python-3.6.10-he025d50_1009_cpython文件内的Lib\site_packages文件夹,发现里面只有一个readme.txt,该文档说这个文件夹是专门用来存放第三方库的,可尼玛这里面没有第三方库啊!!!
在这里插入图片描述

经过一番折腾,看到自己创建的环境/anaconda/envs/labelme,labelme是我创建的虚拟环境,在labelme文件夹内也有一个python.exe,而且版本也是3.6,而且他的Lib\site_packages文件夹里有我所安装的各个库。
在这里插入图片描述
在这里插入图片描述
所以,我把整个lableme文件夹都拷贝到了"C:\Program Files (x86)\Microsoft Visual Studio\Shared"文件夹内,并重命名为Python36_64,重新测试,大功告成,ohhhhh!折腾了我一晚上加半上午,太难了。不过搞定之后很有成就感哈哈哈哈!

解决方案
1.配置好项目属性后,在自己的代码里加入如下两行

PyRun_SimpleString("import sys");
PyRun_SimpleString("print(sys.path)");

运行程序,得到自己项目真实使用的python路径
2.将该python替换为我们想用的python,具体做法为:复制"anaconda安装路径\anaconda3\envs\虚拟环境名称",到1.里的python路径下,删除原python文件,并将复制过来的虚拟环境文件夹重命名为原python文件的名字
3.大功告成

第二次更新
更换了调用的python函数,因此调用的第三方python库也被更改了,重新设置环境变量时,发现一直出错,要么就是nomodule named encodings,要么就是加载第三方库时程序直接退出,使用PyErr_Print()也无法打印出出错信息,折腾了一天也没搞出来。终于在今天早晨想到昨天查问题时,有个博客里说的,加载第三方库不成功,基本都是python路径出问题,然后又使用以下代码
PyRun_SimpleString(“import sys”);
PyRun_SimpleString(“print(sys.path)”);
得到了自己当前真实使用的python路径,是一个自己没有加在工程环境变量里的python路径,然后就想起来自己在电脑的环境变量中设置了python路径,因此修改电脑里的环境变量里的python路径为自己想要用的python路径就可以。
总的来说就一句话:
加载不成功,就检查当前使用的python路径是否正确,工程属性设置的环境变量与电脑系统里的python环境变量都检查一遍是否已经替换为自己想要使用的python路径。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值