gpt4 book ai didi

python - C++ 嵌入 python urllib

转载 作者:太空狗 更新时间:2023-10-29 23:00:13 25 4
gpt4 key购买 nike

python 2.7.10(./Watcher/epMain.py):

import subprocess
import hashlib
import os
import sys
import zipfile
import httplib
#import urllib
#import urllib2

def letsbegin():
subprocess.call('a.exe')
httpClient = httplib.HTTPConnection('www.google.com', 80, timeout=30)
httpClient.request('GET', '/updata/Client_V.html')
response = httpClient.getresponse()
targetV = response.read()
letsbegin()

C++:

Py_Initialize();
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('./Watcher')");
PyObject *pyMain = PyImport_ImportModule("epMain")

pyMain 始终是NULL 但在我将我的python 代码更改为:

 import subprocess
import hashlib
import os
import sys
import zipfile
#import httplib
#import urllib
#import urllib2

def letsbegin():
subprocess.call('a.exe')
httpClient = httplib.HTTPConnection('www.google.com', 80, timeout=30)
httpClient.request('GET', '/updata/Client_V.html')
response = httpClient.getresponse()
targetV = response.read()
letsbegin()

然后就可以在我的c++代码中加载这个模块了但是我很想在这个项目中使用httplib,怎么办?我不能使用:

PyImport_ImportModule("httplib")

因为 python 代码可能会经常更新。此外,当我使用

d:\pros\go\Watcher>python epMain.py

它有效!
urlliburllib2 也有这样的问题。

最佳答案

您似乎使用 Python 3.x include/libs 而不是 2.x 进行编译。

在 Python 3.x 中,httpliburllib2 不可用。 (它们被重命名为 http.client' 和 urllib.request,urllib.error`)

更改编译选项以包含,与 Python 2.x 链接。

更新

要检查 C++ 程序使用的是哪个版本,请尝试以下代码:

Py_Initialize();
PyRun_SimpleString("import sys");
PyRun_SimpleString("print(sys.version)");
...

关于python - C++ 嵌入 python urllib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34280827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com