• 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 ***

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

    另外:在main.py执行的时候,没有指定路径的文件默认与main.py是同一路径。

    转自:http://hi.baidu.com/fleago/item/06b5c95765b17e12aaf6d79b

  • 相关阅读:
    大工程(bzoj 3611)
    消耗战(bzoj 2286)
    Computer(hdu 2196)
    文件排版(codevs 1300)
    洛谷 P2015 二叉苹果树
    洛谷 P2014 选课
    洛谷 P1352 没有上司的舞会
    COGS 505. 城市
    洛谷 P1306 斐波那契公约数
    洛谷 P1962 斐波那契数列
  • 原文地址:https://www.cnblogs.com/youxin/p/3739487.html
Copyright © 2020-2023  润新知