【问题标题】:Importing files from other directory in python?从python中的其他目录导入文件?
【发布时间】:2017-07-31 03:13:21
【问题描述】:

我有以下目录结构:

一个
|
|--B--Hello.py
|
|--C--Message.py

现在如果根目录A的路径不固定,如何将B中的“Hello.py”导入C中的“Message.py”。

【问题讨论】:

    标签: python-2.7 path directory python-import


    【解决方案1】:

    首先我建议将空的__init__.py 文件添加到每个带有python 源的目录中。它将防止许多导入问题,因为这就是packages 在 Python 中的工作方式:

    在你的情况下,它应该是这样的:

    A
    ├── B
    │   ├── Hello.py
    │   └── __init__.py
    ├── C
    │   ├── Message.py
    │   └── __init__.py
    └── __init__.py
    

    假设 Hello.py 包含函数 foo:

    def foo():
        return 'bar'
    

    Message.py 尝试使用它:

    from ..B.Hello import foo
    
    print(foo())
    

    使其工作的第一种方法是让Python解释器完成他的工作并handle package构造:

    ~ $ python -m A.C.Message
    

    另一种选择是使用以下代码将您的 Hello.py 文件添加到 list of known sources

    # Message.py file
    
    import sys, os
    sys.path.insert(0, os.path.abspath('..'))
    
    from B.Hello import foo
    
    print(foo())
    

    在这种情况下,您可以执行它

    ~/A/C $ python Message.py
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-31
      • 1970-01-01
      • 2017-01-25
      • 1970-01-01
      • 1970-01-01
      • 2020-02-21
      • 2019-09-14
      • 2019-10-24
      相关资源
      最近更新 更多