【问题标题】:How to load python module from a neighbouring package?如何从相邻包中加载 python 模块?
【发布时间】:2014-09-06 16:57:43
【问题描述】:

我做了两个python包如下:

theMainFolder/
├── package_a/
│   ├── __init__.py
│   └── some_a_file.py
├──package_b/
│   ├── __init__.py
│   └── some_b_file.py

我现在想将 some_a_file 导入 some_b_file。我尝试使用:

from package_a import some_a_file

但这不起作用。有人知道我该怎么做吗?欢迎所有提示。

【问题讨论】:

    标签: python module package directory-structure


    【解决方案1】:

    将路径添加到主文件夹的位置,然后进行导入

    import sys                                               
    from os.path import dirname, abspath                     
    sys.path.insert(0, dirname(dirname(abspath(__file__))))  
    from package_a import some_a_file
    

    【讨论】:

      【解决方案2】:

      运行程序时,将theMainFolder的路径添加到模块搜索路径中:

      PYTHONPATH=/path/to/theMainFolder python main_program.py
      

      【讨论】:

      • 您的意思是在例如.profile 中更改它?但这不会真的让它便携吗?有没有其他方法可以做到这一点?
      • @kramer65,不。我的意思是当你运行程序时。
      • @kramer65, import os, import sys; sys.path.insert(0, os.path.dirname(os.path.dirname(__file__))) 开头的some_b_file.py
      猜你喜欢
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-18
      • 2013-09-07
      • 1970-01-01
      • 1970-01-01
      • 2013-12-05
      相关资源
      最近更新 更多