我知道已经有很多与此类似的问题,但不幸的是我还没有找到如何应用于我的问题。
我的项目结构如下:
Project
|___ maincode
|___ __init__.py
|___ losses.py
|___ bin
|___ __init__.py
|___ train.py
然后在train.py
我有以下代码:
# Allow relative imports when being executed as script.
if __name__ == "__main__" and __package__ is None:
__package__ = "maincode.bin"
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..'))
from .. import losses
def main(args=None):
#some code here
if __name__ == '__main__':
main()
现在如果我执行脚本train.py
从项目主目录Project/
,即在终端中运行以下命令:
maincode/bin/train.py
然后我得到以下错误:
系统错误:父模块“maincode.bin”未加载,无法
执行相对导入
我尝试使用 Python 2.7.6 和 Python 3.5.2 并获得相同的错误。
能否请你帮忙?先感谢您!
如果您只想运行该模块而不是整个包。做python -m maincode.bin.train
它告诉 python 将其作为模块运行。
如果您想运行整个包,请将目录更改为项目:cd /path/to/project
然后运行:python maincode
如果你的代码设置正确,它应该运行 train.py。
否则,将脚本移出包并单独运行。
有关此内容和了解包的更多信息可以在这里找到:十亿次相对进口 https://stackoverflow.com/questions/14132789/relative-imports-for-the-billionth-time
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)