在Python中避免相对导入和sys.path

时间:2013-11-29 21:22:39

标签: python import

目前,我有一个Python项目,我正在使用这样的目录结构:

tests/
    corpus/
        __init__.py
        tests.py
monkey/
    corpus/
        corpus.py
setup.py

我希望tests.py(在tests / corpus中)导入corpus.py(在monkey / corpus中)。

我见过许多涉及使用相对导入和sys.path的解决方案,但我也看到人们直接导入使用(例如)

import monkey.corpus

如何设置我的代码以便能够像这样导入根文件夹中的任何内容?我已经看到通过配置setup.py可能会有一些想法。这是真的?

非常感谢。我很抱歉用一个相对重要的导入问题来稀释这个美妙的网站。 :)

此致 linuxuser

1 个答案:

答案 0 :(得分:0)

在做了一些研究之后,我发现我需要在内部语料库目录中添加一个空的__init__.py,并在我的.bashrc中添加一行,将其附加到PYTHONPATH。

这就是我的.bashrc现在的样子:

...
export PYTHONPATH=$PYTHONPATH:/home/username/monkey/corpus
...

首先,必须附加我的.bashrc来访问库似乎很不寻常,但从我所听到的,它是编辑环境的典型方式,因此是提供对Python库的访问的正确方法。

有关PYTHONPATH信息的绝佳资源是此博文:http://www.stereoplex.com/blog/understanding-imports-and-pythonpath