我正在努力让 Tox 和 Conda 一起玩得很好。主要是因为我有很多需要安装的非 python 依赖项,而且创建 Conda 发行版很容易。然后我可以用一个简单的 conda install
安装所有东西.
但是,我在激活 conda 环境时遇到了问题。
[tox]
envlist = py27
[testenv]
whitelist_externals =
conda
source
py.test
setenv =
PYTHONPATH = {toxinidir}:{toxinidir}/damlarces
install_command =
python build_env.py --conda-env {toxworkdir}/conda {packages}
commands =
source activate {toxworkdir}/conda
py.test --basetemp={envtmpdir}
python build_env.py --conda-env {toxworkdir}/conda {packages}
负责创建环境(如果需要)、安装包等。问题出在 source activate {toxworkdir}/conda
线。我收到了 ERROR: InvocationError: could not find executable 'source'
错误。直接在命令行中键入命令可以正常工作。对于那些有兴趣的人。
build_env.py
在这个要点中:https://gist.github.com/JudoWill/70450979353fa2d12823 ... 目前它只是安装 Python 依赖项,但在其预期环境中,它将安装不一定是 Python 库的 Conda 存储库。有什么想法吗?
最佳答案
source
不是命令。这是一个内置的shell。 source script.sh
原因 script.sh
在当前 shell 中运行。这对于 activate
来说是必要的,因为它修改了 PATH,并且您希望这些修改影响 shell 本身(通常,当您运行脚本时,它会在子 shell 中运行,该子shell 有自己的环境,不会影响调用 shell 的环境)。
不知道 tox 是否支持在命令中设置环境变量。如果是这样,你可以使用
export PATH={toxworkdir}/conda/bin:$PATH
否则,只需使用所有命令的绝对路径,例如
{toxworkdir}/conda/bin/py.test --basetemp={envtmpdir}
关于python-2.7 - 在 python Tox ini 文件中使用源时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24832693/