如何将项目目录添加到PYTHONPATH



我的项目内容是这样的

C:/{user_name}/my_project/
│  bar.sh
├─scripts/
│  │  bar.sh
│  │
│  └─bar/
│     bar.sh
│
└─src/
    foo.py

和bar.sh的所有内容

python src/foo.py

所以如果我从C:/{user_name}/my_project/目录运行,bar.sh工作。

bash bash.sh 
bash scripts/bar.sh 
bash scripts/bar/bar.sh

但是,在移动到scripts目录后,下面的命令不工作,因为bar.sh试图找到/my_project/sciprts/src/foo.py

bash bar.sh

我知道我们可以通过编辑窗口的环境变量来将my_project目录添加到PYTHONPATH来解决这个问题。但是,我希望避免这种情况,因为{user_name}可以变化,并且这个环境被许多人共享。

因此,我正在寻找一个好方法来添加my_project目录到PYTHONPATH通过添加相同的行(s)到bar.sh。你知道这样一个神奇的命令吗?

就我个人而言,我不认为通过bash脚本修改PYTHONPATH是一个好的解决方案,因为您可能会破坏它。如果您对能够直接调用python foo.py感兴趣,则应该将/src转换为一个包。这不仅允许您在系统中的任何地方执行foo.py,还可以将其中的代码导入到您编写的任何Python代码中。这里有一些关于模块的文档,还有一些关于创建包的文档。

本质上,您在my_project目录中创建了一些文件来告诉Python有关包本身以及依赖项等的信息。确保/src目录中的所有目录也有一个__init__.py文件。一旦你完成了这些,你可以调用pip insall -e my_project,它将把它作为一个包安装到你的系统上(确保你已经安装了pip;它应该在你安装Python的时候就已经存在了,如果没有,你可以从这里获取)。之后,你可以从任何地方调用你的代码。

cd "$(dirname "$0")/.."对我有用!

相关内容

  • 没有找到相关文章

最新更新