Python venv env 失败 - [WinError 2] 系统找不到指定的文件

Python venv env Fails - [WinError 2] The system cannot find the file specified

我在 Windows 10 机器上安装了最新版本的 Python 3.8.2。我以前有 Python 3.7,我卸载了它并在系统路径中确认它不再被引用。

安装最新版本后,我运行以管理员身份通过CMD:

py -m venv env

我得到这个错误:

错误:[WinError 2]系统找不到指定的文件:'C:\Users\test_user\Documents\app_test\env'

我知道 Python 路径在系统路径环境设置中,但不是专门针对用户的(不知道这是否有影响?)。

我也试过用powershell卸载virtualenv,然后重新安装,结果一样。

关于解决这个问题的其他地方有什么想法吗?

我发现 Windows Defender 现在具有阻止 access/changes 系统文件的功能。它默认添加了我的文档文件夹,以某种方式阻止我在 CMD 中创建任何文件夹,尽管有管理员访问权限。我希望这对其他人有帮助!!

简而言之——您可能需要修改或禁用您的 Windows10"Ranswomare Security Protection" 设置以允许您将文件写入您的目录。

我遇到了同样的问题。我发现这是由于将副本 python.exe 可执行文件重命名为 python3.exe 引起的。我这样做是因为我已经安装了 Python 2.7 和 Python 3.9 并配置了 环境变量 以使用 Python 2.7 和 python 命令和 Python 3.9 使用 python3 命令。这样我在 Python 2 的环境变量中的路径在 Python 3.

以上

要修复此问题,请编辑您的路径变量,以便 Python 3 路径将存在于 Python 2 路径之前。

此外,如果您也在使用 Python2,请转到安装位置并创建 python.exe 可执行文件的副本并将其重命名为 python2.exe.

然后当你 运行 python 命令时它会直接到 Python 3并使用 Python 2 你可以使用 python2 命令。

您可以通过 following this issue 找到更多相关信息。

我使用 Python 3.8 和 3.9 的两个版本。将我的 python.exe 文件更改为 python38.exe 后,我遇到了这个错误。我搜索并找到 this answer:

It looks like you might have renamed your python.exe executable to python3.exe? I got this same error after following install instructions that had me rename python.exe to be version-specific. I renamed it back and python -m venv venv worked fine.

将我的 2 个主要 python 文件改回 python.exe,现在我只是 运行

py -3.8 -m venv env 

py -3.9 -m venv env

在 Windows 10 日,您只需要 运行 以管理员身份运行脚本即可。

我意识到每当多次安装出现问题时,尤其是那些很少发生的问题,比如设置环境,我使用 python 安装的完整路径

[path to python installation folder]/python.exe -m venv env

这里要注意的是,如果您有一个名为 python2/3/27/37.exe 的 python.exe 副本,请务必调用原始可执行文件。

这解决了我的问题:

python -m pip install -U pip --user //In Windows 
pip install -U pip --user //Linux, and MacOS

要克服这个问题 运行 py -m venv env --user 或者您也可以手动 运行 作为管理员的脚本

我遇到过同样的问题。并使用一个简单的技巧解决它。 有些包需要文件夹权限才能安装,为此使用具有管理员访问权限的 cmd,然后安装任何你想要的。安装包或环境后,它会为普通用户访问打开大门。

在新的 windows 系统中,最好使用具有管理员权限的 cmd 来避免这些错误

我得到了 WinError 2,因为我安装了多个不同版本的 python3,并且我将 python.exe 重命名为其他名称。我已经尝试了此 post 中提供的所有解决方案,包括关闭防火墙。不幸的是,我仍然遇到了 winerror。所以,我必须在 [python 路径]/Lib/venv/[= 中编辑 venv init 12=]init.py.找到 python_exe 变量并将其值从 python.exe 更改为新的 python 可执行文件名称(在我的如果是 python39.exe)。此外,找到名为 suffixes 的变量并将后缀列表中的 python.exe 更改为您的 python 可执行文件名称。最后,测试它制作一个env并激活它。 WinError 问题已解决。

您可能会遇到此错误,因为您的计算机上有两个或更多版本的 Python。 安装第二个版本时,您:

  • 创建了环境变量(例如 PYTHON37_HOME -> C:/Users/..Python/Python37
  • Path 中指定了这个变量。
  • 将文件 python.exe 重命名为 python37.exe

现在打开文件C:\Users\....\Python\Python37\Lib\venv\__init__.py可以看到,通过执行setup_python()函数,在suffixes = ['python.exe', ...]中已经找不到python.exe了,因为我们重命名了它。

因此您还必须将 suffixes = ['python.exe', ...] 重命名为 suffixes = ['python37.exe', ...]

再次执行 python37 -m venv venv 它应该可以工作

如果您不喜欢“禁用您的 Windows 10 “Ranswomare 安全保护”的方法,

  1. 然后转到 python 安装目录 windows
  2. 右键单击并选择属性。
  3. 转到安全选项卡。
  4. 通过编辑权限将所有访问权限授予当前用户

运行再次评论设置,希望它能正常工作。

我遇到了同样的问题,我升级了 venv 中的 pip,结果成功了。 我的问题是我无法像 django 这样在 venv 中安装任何东西,但是当我升级 pip 时一切顺利。 您必须使用的命令是:

Windows 命令提示符

> python -m pip install --upgrade pip

Linux 航站楼

$ pip install --upgrade pip

MacOS 终端

$ pip install --upgrade pip