繁体   English   中英

将项目根目录添加到sys.path是一个好习惯吗?

[英]Is adding project root directory to sys.path a good practice?

我有一个关于添加项目路径到python的问题,以方便import工作。

情况

当我用Python编写代码时,我通常会使用添加必要的sys.path路径

import sys
sys.path.append("/path/to/dir/") # almost every `.py` need this

有时,当我的项目在许多级别的目录中变得更大时,这种方法看起来很笨重且容易出错(特别是当我重新组织我的文件时)

最近,我开始使用bash脚本(位于项目根目录),将项目根参数的sys.path.append添加到项目中的.py文件中。 通过这种方法,我几乎不必手动关心导入模块。

我的问题是:这是一个好习惯吗? 与我的旧方法相比,我发现自己很方便,但由于bash脚本是一个单独的文件,我需要2个命令来运行我的项目中的任何脚本(一个用于bash,一个用于.py )。 我可以在bash中包含调用.py的命令,但它远没有直接从终端调用它。

真想听听一些建议! 提前致谢。 任何建议将不胜感激!

在python库或程序中使用操作sys.path通常不是一种好习惯。 您应该在python程序的调用环境中将相关路径添加到PYTHONPATH

PYTHONPATH="/path/to/other/projects/directory:$PYTHONPATH" python ...

要么

export PYTHONPATH="/path/to/other/projects/directory:$PYTHONPATH"
python ...

这使您可以轻松地操作程序或库将轻松搜索依赖项的路径,而无需修改代码。

通过修改bashrc或在init脚本(或其他包装脚本)中的生产环境中,在个人开发环境中管理它也非常容易,并且每次添加或修改项目路径时都会为您提供一个更新位置。

鉴于您提到每个.py文件几乎有一个目录,您还应该考虑如何将代码组织到包中以进一步简化设置。

这不是一个特别好的做法,尽管你可以侥幸逃脱。 最好通过(或pipenv)查看virtualenv以获得更顺畅的工作流程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM