我的结构如下:
c
|-myMain.py
|-.....\someDir
|-startup.py
|-subDir
|-x.py
我发现很少有类似的问题,答案让我想到了这个问题:
#myMain.py
import os
if __name__ == '__main__':
os.chdir("c:\\......\\someDir")
execfile("startup.py")
#startup.py
from subDir import x
if __name__ == '__main__':
x.doSomething()
问题是当我运行myMain.py:
时,startup.py中的导入失败ImportError: No module named subDir
但是,当我直接运行startup.py时,它可以正常工作。任何帮助将不胜感激。
答案 0 :(得分:1)
为了让python将subDir
视为有效的python结构,您必须将其设为package。通过在该目录中包含__init__.py
文件,使其成为一个包。该文件可以为空。
subDir
有这样的文件后,语句from subDir import x
应该有效。
答案 1 :(得分:0)
未来的读者:
Pradyumna的回答from here为我解决了这个问题:
import sys,change" sys.path"通过在运行期间附加路径 时间,然后导入将帮助的模块
[即。 sys.path.append(execfile' s目录)]