使用 tox 的虚拟环境 PYTHONPATH

Var*_*har 5 python tox

我有一个 tox.ini 文件

[testenv:py27]
deps= -r{toxinidir}/requirements.txt
setenv =
    PYTHONPATH = {toxinidir}{:}{toxinidir}/helpers
Run Code Online (Sandbox Code Playgroud)

我运行了命令tox,并在里面创建了 virtualenv.tox/py27

当我激活 py27 环境时

cd .tox/py7/bin
source activate 
py27 $ echo $PYTHONPATH < gives null>
Run Code Online (Sandbox Code Playgroud)

PYTHONPATH虽然 tox.ini 已setenv明确PYTHONPATH设置但为空

为什么 PYTHONPATH 将自身设置为空?

Oli*_*ter 3

您是否期望 tox 按照此处activate所述修改脚本?

如果您想更改PYTHONPATHvirtualenv 中使用的内容,可以将以下行添加到 virtualenv 的bin/activate文件中:

export PYTHONPATH="/the/path/you/want"
Run Code Online (Sandbox Code Playgroud)

这样,PYTHONPATH每次使用此 virtualenv 时都会设置新的。

如果是:tox 不会执行类似的操作 - 它会创建一个普通的 virtualenv(如果安装了 tox-venv,则创建 venv)。

因此,setenv仅当您运行 tox 环境时才会发生定义的内容(请参阅代码)。