不支持按文件名嵌入python错误导入

2024-09-28 21:16:19 发布

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

我试图将python嵌入到我的应用程序中,但很早就陷入了困境。

我将Python嵌入到C++应用程序中,并使用本教程中找到的代码: http://docs.python.org/2/extending/embedding.html#pure-embedding

我的应用程序完全匹配,编译成功,没有错误。但是在运行应用程序时pModule = PyImport_Import(pName);行返回0失败,这意味着我从

Failed to load "C:\Users\workspace\dpllib\pyscript.py"
ImportError: Import by filename is not supported.

正在使用命令C:\Users\workspace\ndnlib\pyscript.py multiply 50 150调用应用程序


Tags: 代码pyorgimport应用程序httpdocshtml
2条回答

我不能确定,但我想既然pName设置为argv[1],并且您使用完整路径调用脚本,那么argv[1]就是完整路径。这意味着代码将尝试导入“C:\ Users\workspace\dpllib\pyscript.py”,而python不能(它只能导入“pyscript”)。

尝试从目录中键入“py script.py”来运行脚本,并查看错误是否更改为“未能加载“pyscript.py”。如果是,那么您必须修复它,这样它就不会只导入argv[1]并修改字符串以获取模块名而不是文件名。

如果将文件创建为模块,则更简单。

例如

创建此:

<project>/MyModule/__init__.py

然后运行文件<project>/script.py

dyn_module_name = (... get module name 'MyModule' from console arguments ...)
my_dynamic_module = __import__(dyn_module_name)

因为它是一个模块,所以它将在scripy.py执行时加载

相关问题 更多 >