【发布时间】:2009-12-30 07:49:47
【问题描述】:
我有以下 python 3 文件:
import base64
import xxx
str = xxx.GetString()
str2 = base64.b64encode(str.encode())
str3 = str2.decode()
print str3
xxx 是一些 C++ 代码导出的模块。此脚本不起作用,因为在此脚本上调用 Py_InitModule 返回 NULL。奇怪的是如果我在同一目录中创建一个存根 xxx.py
def GetString() :
return "test"
并在 python.exe 下运行原始脚本,它可以工作并输出 base64 字符串。我的问题是为什么不喜欢xxx.GetString的返回值?在 C++ 代码中,它返回一个字符串对象。我希望我已经很好地解释了我的问题......这是一个奇怪的错误。
【问题讨论】:
-
除非您发布您的 C++ 代码,否则无法回答此问题。错误就在那里。你的 Python 代码没有问题。
-
@George:请添加标签名称“C++”...另外,请发布您的 C++ 代码...
-
修复了标签。我会尽快添加代码。
-
另外,我还有另一个使用 re 模块的脚本,它适用于我的代码......但这不是。 Unicode 和它有什么关系吗?
-
呃,你似乎已经补充说你正在使用 Python 3。是真的吗?如果是,您应该首先尝试使用 Python 3 执行脚本(您会看到由于各种问题而失败,您必须在继续之前修复这些问题)。确实,它证明了提供有关您的问题的详细信息是多么重要;否则我们只是在浪费时间。