我正致力于一个简单(吗)的扎根项目。 我有一套海关包,安装在现场包装中。 c) 安装,例如:
in C:Python27Libsite-packages:
mypackage
__init__.py
subpackage
__init__.py
subpackage.py
....
mymodule.py
就在做一些简单的embe事时,我正在得到一些与我打碎玻璃窗时所听到的行为相对应的行为。 具体地说:
PyRun_SimpleString("import mypackage") //Success (return == 0)
PyRun_SimpleString("from mypackage import subpackage") //Success
PyRun_SimpleString("from mypackage import mymodule") //Fail (return == -1)
......如果所有这些工作都只是细微的窗户(无进口商,我可以取得预期结果,例如<代码>dir(金属)代码>。
I m aware that the interpreter that results from Py_Initialize()
is a little different from what you get in a cmd window, notably sys.path...having read some of the other answers on SO I tried inserting as the first element of sys.path:
PyRun_SimpleString("import sys
sys.path.insert(0, )")
prior to the failing import, but no luck, still returns -1. Also tried appending sys.path with C:Python27Libsite-packagesmypackage , but still no luck importing mymodule (mymodule.py).
根据关于SO和其他地点的其他例子,我曾尝试过几个进口变量,例如:
__import__( mypackage ,globals(), locals(), fromlist=[ mymodule ])
__import__( mypackage.mymodule ,globals(), locals(), fromlist=[ mymodule ])
还尝试了<条码>PyImport_Import ModuleEx,并且与PyRun_SimpleString一样,除“从我的包裹进口ule”外,它还为一切工作。
此外,根据MacOS/Python 2.7,这一设想只是罚款。 它只是视窗,它失败了。
任何可能偏离铁路的想法?
<>UPDATE:一些额外信息:子包装.py 进口一个扩展图书馆(小册子,称其实用性)。 能够进口其他不进口的“快”模块。