zoukankan      html  css  js  c++  java
  • python的相对路径导入问题

    用python做项目,如果项目大了,或者想更好的管理程序,总是要使用包。包解决了命名冲突的问题。

    今天在使用python的相对路径导入的时候,遇到了不少的问题。

    包导入情形:

    src/
        __init__.py
        main.py
        components/
            __init__.py
            expander.py
            language_id.py
        utilities/
            __init__.py
            functions.py

    如果要在expander.py中引用functions.py中的内容,或许这样表示

    from ..utilities import functions.py

    1.错误一:ValueError:Attemptedrelative import beyond toplevel package

    这个问题是因为到达了包的最顶层,而最顶层不是一个包。

    解决方法:在main.py同级添加一个目录mod,包含components和utilities,并在mod中添加一个__init__.py,即可解决

    参见:http://stackoverflow.com/questions/4175534/relative-imports-in-python

    2.错误二:ValueError: Attempted relative import in non-package

    使用相对路径进行导入的文件,不能再当作主文件执行。原因如下:

    http://blog.csdn.net/chinaren0001/article/details/7338041

    3.错误三:no module named ***

    在指定路径下没有找到该模块。

  • 相关阅读:
    QuickContactBadge
    第一周——15选1
    UVA 10036 Divisibility
    POJ 3984 迷宫问题
    POJ 3258 River Hopscotch
    CodeForces 230A Dragons
    HDU 4450 Draw Something
    POJ 2485(PRIME算法)
    HDU 1213
    CodeForces 16E
  • 原文地址:https://www.cnblogs.com/alan-babyblog/p/5218818.html
Copyright © 2011-2022 走看看