gpt4 book ai didi

python - 为什么 `tox` 在 Windows 的系统 Python 目录中安装包?

转载 作者:太空宇宙 更新时间:2023-11-04 04:41:04 25 4
gpt4 key购买 nike

我是 tox 的新手,但我的理解是它为每个测试环境创建本地虚拟环境。但是,似乎每当我运行 tox 时,它都会先将包安装到系统 Python 安装中,然后再在那里安装任何依赖项。

这是我能展示的最简单的例子:

我的 tox.ini 很简单:

[tox]
envlist = py27

[testenv]
commands = pytest

deps =
pytest

然后下面的一系列命令显示pytest没有安装,但是在tox运行的最后,安装在系统python路径下:

> which pytest
which: no pytest in (/cygdrive/c/Program Files (x86....

> tox
[... lots of output ...]

___________________________________ summary ___________________________________
py27: commands succeeded
congratulations :)

然后,

> which pytest
/cygdrive/c/Python27/Scripts/pytest

此外,我看到我正在测试的包也安装在系统 python 目录中。

tox 不应该在本地生成虚拟环境吗?我看到创建了一个 .tox/py27 目录,但它看起来像一个 Linux 风格的安装,带有一个 bin 目录而不是 Scripts。这是 tox 的预期行为吗?

最佳答案

看起来您在系统的 PATH 环境变量上使用了 Windows 原生 Python,它甚至在 Cygwin 的 /bin 路径之前以某种方式被插入,所以 tox 正在查找并尝试运行该 Python 而不是 Cygwin 的 Python。通常,除非有非常具体的原因,否则您不应使用 Cygwin 的 Windows Python。

根据评论,您提到您安装了 TortoiseHG。我不确切知道 TortoiseHG 在 Windows 上是如何工作的,但是由于 Mercurial 是用 Python 编写的,TortoiseHG 必须带有 Python 解释器,或者至少使用它在 Windows 上找到的任何 Python 解释器(可能使用 virtualenv),所以如果 TortoiseHG有一个 PATH 条目确保它仍然在您的 Cygwin {/,/usr/,/usr/local/}bin 之后。

关于python - 为什么 `tox` 在 Windows 的系统 Python 目录中安装包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50635449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com