gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 11:16:15 31 4
gpt4 key购买 nike

我有一个关于将项目路径添加到 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)。我可以将调用 .py 的命令包含到 bash 中,但它远不如直接从终端调用它灵活。

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

最佳答案

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

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

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

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

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

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

关于python - 将项目根目录添加到 sys.path 是一个好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51146723/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com