【发布时间】:2018-06-01 09:02:23
【问题描述】:
我知道已经有很多类似的问题,但不幸的是我还没有找到如何应用到我的问题。
我的项目结构如下:
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()
现在,如果我从项目主目录Project/ 执行脚本train.py,即在终端中运行以下命令:
maincode/bin/train.py
然后我得到以下错误:
SystemError: 父模块 'maincode.bin' 未加载,不能 执行相对导入
我用 Python 2.7.6 和 Python 3.5.2 都试过了,得到了同样的错误。
你能帮忙吗?提前谢谢!
【问题讨论】:
-
你想只运行 train.py 还是整个应用程序?
-
@edlee 主要代码在
train.py,这取决于项目的其余部分,所以我想我必须运行整个应用程序? -
什么 - 文档说应该有效。我不明白为什么没有。
-
@user2357112 我不知道 :(
标签: python python-3.x python-2.7