1

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

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

我的目标是,一旦venv被激活dir1dir2在里面sys.path。基本上,我解决了这个任务,但我真的不喜欢解决方案。我在文件下添加了自定义PYTHONPATHvenv一切bin/activate正常。从部署的角度来看,这不是那么灵活。是否为此venv提供一些?hooks例如:设置客户environment variables一旦venv被激活或运行某些功能或类似的东西。我不喜欢bin/activate在每台机器上修改文件的想法。
PS我知道包装的东西setuptools,但是对于这个项目我不能使用它。

有任何想法吗 ?

谢谢 !

4

1 回答 1

1

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

创建一个activate.sh脚本,将路径导出到模块并激活 venv 即:

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

那么你可以做source activate.sh而不是,source venv/bin/activate你将同时拥有这两个动作。

于 2021-03-09T15:04:24.003 回答