PYTHONPATH与sys.path

发布于 2021-01-29 16:25:00

我和另一位开发人员不同意应该使用PYTHONPATH还是sys.path来允许Python在用户(例如,开发)目录中找到Python包。

我们有一个具有典型目录结构的Python项目:

Project
    setup.py
    package
        __init__.py
        lib.py
        script.py

在script.py中,我们需要这样做import package.lib。当该软件包安装在site-
packages中时,script.py可以找到package.lib

但是,从用户目录工作时,还需要做其他事情。我的解决方案是将我的PYTHONPATH设置为包括“〜/
Project”。另一位开发人员希望将这行代码放在script.py的开头:

sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

以便Python可以找到的本地副本package.lib

我认为这是个坏主意,因为该行仅对开发人员或从本地副本运行的人有用,但是我不能给出一个很好的理由,说明它不是一个好主意。

我们应该使用PYTOHNPATH,sys.path还是很好?

关注者
0
被浏览
52
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    如果修改路径的唯一原因是让开发人员从其工作树中进行工作,则应使用安装工具为您设置环境。virtualenv非常流行,如果您使用setuptools,则只需运行setup.py develop即可在当前的Python安装中半安装工作树。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看