不安装python也正常运行编译python的程序

最近遇到一个问题,在没有安装相对应python版本的机器上运行编译过pythonx.lib的程序时会出现问题。

程序可以正常运行,但是却不能加载python的程序(程序有C++与python交互),在程序里面启动python虚拟机,由它来对python脚本进行解释。

对于没有交互的python脚本是不存在这个问题的,但最好是把这些库都放进来,以防万一。因为python是非编译型的,你不知道他哪个分支会出问题。

程序启动的python虚拟机是在编译和链接时确定的版本为2.6,但是运行该程序的机器上没有安装过python2.6或是安装过其他的版本。如3.0

此时出现的情况是加载不到交互的python文件。文件夹里面的__init__.py文件可以被加载。由此可见python已被正常初始化。但是虚拟机解析不了那些python文件。

问题就出在这里。那些文件是由swig生成的。而且与c++有交互。其中需要由python对应版本的库文件来解析。但是找不到支持的python文件,因此加载不进来。

这都是python的import路径问题

我们的可执行程序放在e:\demo\demo.exe

程序运行的当前路径是最先被搜索的路径。因此,我们需要把对应的python库文件放在这里. e:\demo\python26.dll

然后这里放上我们要读取的所有python脚本文件. e:\demo\pythonscripts

在我们的代码里面需要在sys.path.append('.\\pythonscripts') 否则程序找不到此路径。

然后需要把python26的Lib文件夹放进来,再把DLLs文件夹放进来,这些都是运行python所必须的文件。

这样子这个文件夹起起来是这个样子的

e:\demo\Lib

e:\demo\DLLs

然后在程序 里面加上 sys.path.append('\\Lib')

然后在程序 里面加上 sys.path.append('\\DLLs')

这样以后就没有问题了~完美运行,不再需要安装对应版本的python。而且对原来安装过的python文件也没有任何影响。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值