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

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

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

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

  • 相关阅读:
    1.Math函数对象
    1.日期与时间
    使用object literal替换switch
    Array数组去重
    flexbox弹性布局
    web移动端一些常用知识
    解决网页ICON图标无法显示的问题
    观察者模式和发布订阅模式的区别
    JS延迟加载的几种方式
    前端 api 请求缓存方案
  • 原文地址:https://www.cnblogs.com/youxin/p/3739487.html
Copyright © 2011-2022 走看看