我正在Windows上开发,我搜索到的所有地方都没有找到任何人谈论这种事情.
我在桌面上制作了一个C++应用程序,它使用MSVC嵌入了Python 3.1.我将python31.lib与应用程序运行文件夹中的python31.dll一起包含在可执行文件中.它很棒.我的扩展和嵌入代码肯定有效,没有崩溃.
我将run文件夹发送给没有安装Python的朋友,在脚本设置阶段,应用程序崩溃了.
几个小时前,我在安装了Python 2.6的笔记本电脑上试用了这个应用程序.我得到了与我的朋友相同的崩溃行为,并通过调试发现它是Py_Initialize()调用失败.
我在笔记本电脑上安装了Python 3.1而没有更改应用程序代码.我跑了它,它完美运行.我卸载了Python 3.1并且应用程序再次崩溃.我在我的应用程序中放入代码以从本地python31.dll动态链接,以确保它正在使用它,但我仍然得到崩溃.
我不知道解释器是否需要比DLL更多启动或什么.我无法找到任何资源.Python文档和其他指南似乎没有解决如何在不让用户在本地安装Python的情况下分发使用Python嵌入的C/C++应用程序.我知道它在Windows上比在Unix上更多的是一个问题,但是我已经看到许多在本地嵌入Python的Windows C/C++应用程序,我不确定它们是如何做到的.
除了DLL之外我还需要什么?为什么我安装Python然后在卸载时停止工作呢?听起来应该是如此微不足道; 也许这就是没有人真正谈论它的原因.不过,我无法解释如何处理这个崩溃问题.
非常感谢你提前.
你好软件开发人员.
我想通过嵌入Python解释器来分发可编写脚本的C程序.
C程序使用Py_Initialize,PyImport_Import等来完成Python嵌入.
我正在寻找一个解决方案,我只分发以下组件:
我怎么能做到这一点?那是一个循序渐进的食谱吗?
该解决方案应该适用于Windows和Linux.
提前致谢.