【发布时间】:2010-12-26 00:02:38
【问题描述】:
我和另一位开发人员不同意应该使用 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,还是两者都可以?
【问题讨论】:
-
似乎投票和答案的分配相当平均,并且略微倾向于使用 PYTHON_PATH,尽管这可能是对问题的采样噪音或无意的偏见。
-
关于
PATH和sys.path(间接PYTHONPATH)之间的区别参见stackoverflow.com/questions/25344841/sys-path-vs-path
标签: python python-import pythonpath sys.path