C++中嵌入Python时遇到的问题

2024-10-02 06:32:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为一个.exe程序制作一个.dll并将python嵌入其中。用这个简单的.py程序运行得很好

from time import *
##import OptimRestriction

def test_callsign(b):
    ...(simple script)
    return 

我所做的是将.py程序、Dll和Lib文件夹复制到xxx.exe文件文件夹,就像是说here。在

但是一旦我取消了OptimRestriction的导入注释,调试就会崩溃。首先,当对初始化并处理Python的线程的调用被调用时,它开始加载符号:_ctypes.pyd_sockets.pydsst_pydharshlib.pydunicodedata.pydtkinter.pyd,所有OptimRestriction不使用的模块。在

调试崩溃后给出的错误是:

Unhandled exception at 0x1E0AA0C5 (python27.dll) in xxx.exe: 0xC0000005: Access violation reading location 0x00000004.

它破坏了_callthreadstart函数。在

OptimRestriction是一个长程序,它导入许多模块(也在.exe文件夹中)。以下是其进口商品清单:

^{pr2}$

在我看来,线程启动的时间太长,因为调试开始加载这些文件很长时间,因此它会给出一个错误。我说的对吗?如果是这样的话,为什么要加载那些文件,如果OptimRestriction及其重要部分不使用它们呢?在

在编辑:新信息。在这一行说Can't import module时会崩溃: pModule = PyImport_Import(pName);


Tags: 模块文件frompyimport程序文件夹程序运行
1条回答
网友
1楼 · 发布于 2024-10-02 06:32:35

在把问题简化为几行代码后,我发现问题出在一些模块打开.txt文件读取的行中。在

我认为把.txt文件放在.py程序的同一个文件夹中是正确的做法,但似乎我需要将它们复制到我的c++插件的文件夹中(我想这是因为当我调试时,由于pyton的写入和读取是在那里完成的,所以我的插件文件夹的系统路径发生了变化)

问题解决了!在

相关问题 更多 >

    热门问题