另一位开发人员和我不同意应该使用 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
还是可以?
最佳答案
如果修改路径的唯一原因是让开发人员在他们的工作树中工作,那么您应该使用安装工具为您设置环境。 virtualenv 非常流行,如果您使用的是 setuptools,您只需运行 setup.py develop
即可在当前 Python 安装中半安装工作树。
关于PYTHONPATH 与 sys.path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1893598/