从子目录或相对路径导入包

时间:2015-06-24 06:46:08

标签: python packages

这是我的目录设置:

mydir
├── script1.py
└── shared
    ├── otherstuff
    ├── script2.py
    └── pkg
        ├── box.py
        └── __init__.py

script2.py

开头
import pkg 

它很有效。当我在script1.py中包含相同的行时,我得到:

Traceback (most recent call last):
  File "script1.py", line 1, in <module>
    import pkg

有没有什么好方法可以让script1.py中的语法变得简单?我过去一小时一直在阅读关于PYTHONPATHsys.path的内容,但我试图为我的回购提供一些基本功能,而且我无法相信它会需要每当我想运行脚本时修改PYTHONPATH

我在这里缺少什么?将pkg加入script1.py的最佳方法是什么?

3 个答案:

答案 0 :(得分:0)

你必须这样做:

from shared import pkg

此外,您的shared目录应该有一个__init__.py文件

答案 1 :(得分:0)

我在python 3.x中测试过,你可以做任何一个 -

import shared.pkg

from shared import pkg

答案 2 :(得分:0)

如果您不想在depmixS4中创建__init__.py文件并使用shared,则可以通过以下方式解决此问题:

import shared.pkg