【发布时间】:2012-11-16 19:00:54
【问题描述】:
我正在尝试运行embedding example,但我无法从当前工作目录加载模块,除非我明确将其添加到sys.path 然后它可以工作:
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append(\".\")");
Python 不应该在当前目录中寻找模块吗?
Edit1:尝试只导入模块:
Py_Initialize();
PyRun_SimpleString("import multiply");
它仍然失败并出现以下错误:
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named multiply
Edit2:来自sys.pathdocs:
如果脚本目录不可用(例如,如果解释器是 以交互方式调用或者如果脚本是从标准输入中读取的), path[0] 是空字符串,指示Python搜索模块 首先在当前目录中。
不确定不可用是什么意思,但如果我打印sys.path[0],它就不是空的:
/usr/lib/pymodules/python2.7
【问题讨论】:
-
python 应该,你有没有试过打印出
os.getcwd()来检查你在哪里? -
尝试
from __main__ import multiply假设multiply是按照教程在文件中定义的函数
标签: python linux python-2.7 python-embedding