python - 当 virtualenv 激活时设置 PYTHONPATH

标签 python virtualenv python-venv pyenv pyenv-virtualenv

此时,我使用 pyenv + venv 来管理 Python 版本和特定库。我的项目布局如下所示:

  1. 目录1
    • 子目录11
    • 子目录12
    • 子目录13
  2. 目录2
    • 子目录21
    • 子目录22
    • 子目录23

我的目标是,一旦 venv 被激活,dir1dir2 就会位于 sys.path 内。基本上,我解决了这个任务,但我真的不喜欢解决方案。我在 bin/activate 文件下的 venv 中添加了自定义 PYTHONPATH ,一切正常。从部署的角度来看,这不太灵活。 venv 是否为此提供了一些hooks ?例如:激活 venv 后设置客户环境变量或运行某些函数或类似的东西。我不喜欢在每台机器上修改 bin/activate 文件的想法。
P.S 我了解打包工具和 setuptools,但对于这个项目我无法使用它。

有什么想法吗?

谢谢!

最佳答案

另一种可能性(这通常是我使用的,并避免进入你的 venv 源代码):

创建一个 activate.sh 脚本,在其中导出模块的路径并激活 venv ie:

source venv/bin/activate
export PYTHONPATH=$PYTHONPATH:$(pwd)

那么您只需执行 source activate.sh 而不是 source venv/bin/activate 即可同时执行这两个操作。

关于python - 当 virtualenv 激活时设置 PYTHONPATH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66530642/

相关文章:

Python 计算加泰罗尼亚数字

python - 限制python和opencv上的视频捕获帧速率

python - macOS 上的 virtualenv 使用不存在的 python 解释器

Python:PIL/_imaging.so:无效的 ELF header

python - Virtualenv myenv 不会在 Ubuntu 18.04 上的 exFAT 硬盘上创建虚拟环境

一次对整个 numpy 数组进行 python 类型转换

python - 解码字节

python - 为什么 venv 在 rsync 后中断?

python - 当我尝试使用 venv 激活虚拟环境时出现错误

~/.zshrc 中的 python 别名覆盖虚拟环境源