繁体   English   中英

python相对导入错误

[英]python relative import error

这是我的项目结构

Project/
      docs/
      scripts/
      project-2.5/
          bin/
             program.py
             __init__.py
          config/
             config.ini
          tests/
          src/
             main_program.py
             __init__.py
      __init__.py

用户应该执行program.py,它将选项传递给main_program.py

eg. bin/># python program.py -c ../config/config.ini

program.py

#!/usr/bin/env python

import optparse
from ..src.main_program import main_function

def main():
    parser = optparse.OptionParser()
    parser.add_option('-c', '--config',
                      dest="config_file",
                      default='config.ini'
                        )
    options, remainder = parser.parse_args()
    main_function(options)

if __name__ == "__main__":
    main()

main_program.py

#!/usr/bin/env
import sys

def main_function(options):
    blah blah blah
    ......
    ...
    ..
    .

但是我得到这个错误:

Traceback (most recent call last):
  File "./program.py", line 6, in <module>
    from ..src.main_program import main_function
ValueError: Attempted relative import in non-package

__init__.py在您的src文件夹中具有错误的名称。 它缺少. 在文件名中。

另外,您的Project/project-2.5/文件夹也没有__init__.py 如果您解决了这些问题,它应该可以正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM