我试图在C ++应用程序中嵌入
Python 3.6时扩展模块搜索路径.将当前工作目录插入系统模块搜索路径的代码是:
PyObject *sysPath = PySys_Getobject("path"); PyObject *path = PyBytes_FromString("."); int result = PyList_Insert(sysPath,path);
这工作正常(没有错误),但是当我尝试运行模块时Python不高兴:
PyObject *pModule = PyImport_ImportModule("python_demo_x");
Python报告的错误是:
Could not load module python_demo_x Traceback (most recent call last): File "<frozen importlib._bootstrap>",line 961,in _find_and_load File "<frozen importlib._bootstrap>",line 946,in _find_and_load_unlocked File "<frozen importlib._bootstrap>",line 885,in _find_spec File "<frozen importlib._bootstrap_external>",line 1157,in find_spec File "<frozen importlib._bootstrap_external>",line 1129,in _get_spec File "<frozen importlib._bootstrap_external>",line 1245,line 1302,in _fill_cache TypeError: a bytes-like object is required,not 'str'
通过反复试验,我发现用双引号包装路径解决了这个问题:
PyObject *path = PyBytes_FromString("\".\"");
我找不到任何表明包装路径是必需的文档.这是必需的,还是有其他错误?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。