为什么会发生这种情况?
import window; print "LOADED"; data = cPickle.loads(data)
结果是:
LOADED Traceback (most recent call last): ... import window; print "LOADED"; data = cPickle.loads(data) exceptions.ImportError: No module named window
如果可以的话import window,cPickle它可以很好地加载模块,但是加载时似乎不起作用。
import window
cPickle
有关一些可能相关的其他信息:
我保存文件的模块在中project1\MODULE\submodule\main.py。该window模块project1\MODULE\window.py。main.py开始:
project1\MODULE\submodule\main.py
window
project1\MODULE\window.py
main.py
import sys sys.path.append("..\\..") sys.path.append("..") ... import window
我试图从中加载的模块在in中project2\project2sub\MODULE\data.py,而不会弄乱sys路径。
project2\project2sub\MODULE\data.py
sys
MODULE在两种情况下都是相同的:我要加载的模块是project2\project2sub\MODULE\window.py。
MODULE
project2\project2sub\MODULE\window.py
可能sys.path以某种方式将附加内容弄乱吗?
sys.path
泡菜取决于模块路径。不管您如何加载模块,如果您不介意的话sys.path,泡菜的加载和保存都应该起作用。但是,如果import module.foo在一个位置执行,则sys.path.append('module'); import foo有两个不同的模块路径:在第一个实例中,模块路径为,module.foo而在第二个实例中,路径为just foo。这些不相等,这将阻止泡菜正常工作。
import module.foo
sys.path.append('module'); import foo
module.foo
foo