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

26

我在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并重新安装,但结果相同。

还有其他地方可以寻找解决方法吗?

13个回答

23

我曾经遇到同样的问题,发现原因是将复制的python.exe重命名为python3.exe所致。 我这样做是因为我安装了Python 2.7和Python 3.9,并配置了 环境变量,使用python命令使用Python 2.7并使用python3命令使用Python 3.9。 因此,我的Python 2的环境变量路径在Python 3之上。

要解决此问题,请编辑您的路径变量,以使Python 3路径位于Python 2路径之前。

如果您还在使用Python2,则还需前往已安装位置创建python.exe可执行文件的副本并将其重命名为python2.exe

然后,当您运行python命令时,它将指向Python 3,而要使用Python 2,您可以使用python2命令。

您可以通过 查看此问题 来获取更多信息。


我发现即使我只创建了python.exe的符号链接或副本,同样存在相同的问题。 - Dan Menes

21

我发现Windows Defender现在有一个功能,可以阻止对系统文件的访问/更改。它默认添加了我的文档文件夹,使我无法在CMD中创建任何文件夹,尽管我具有管理员权限。希望这能帮助其他人!!

简而言之,您可能需要修改或禁用Windows 10的“勒索软件安全保护”设置,以允许您将文件写入您的目录。


12
我赞同这个观点,只需在管理员模式下使用命令提示符运行命令,而不是禁用Windows Defender。 - Reno

17

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

看起来你可能已经将你的python.exe可执行文件重命名为 python3.exe?我按照安装说明操作后也遇到了同样的错误, 指南要求将python.exe重命名为特定版本。 我将其改回来后,python -m venv venv工作正常了

我将我的两个主要Python文件改回python.exe,现在只需运行

py -3.8 -m venv env 
或者
py -3.9 -m venv env

9
您可能遇到这个错误是因为您的机器上有两个或多个版本的 Python。当安装第二个版本时,您需要:
  • 创建环境变量(例如 PYTHON37_HOME -> C:/Users/..Python/Python37
  • 将此变量指定在 Path 中。
  • 将文件 python.exe 重命名为 python37.exe

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

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

再次执行 python37 -m venv venv,它应该工作正常。


7
如果您不喜欢“禁用Windows 10的勒索软件安全保护”方法,
1.那么请前往Windows上的Python安装目录
2.右键单击并选择属性。
3.进入安全选项卡。
4.通过编辑权限为当前用户提供所有访问权限。

enter image description here

再次运行安装命令,希望它能顺利完成。


5

我意识到,每当出现多个安装的问题时,尤其是像设置环境这样罕见的情况,我会使用完整路径来安装Python。

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

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

2
在Windows 10上,您只需要以管理员身份运行脚本。

1

我也遇到了同样的问题,后来我升级了venv中的pip,问题就解决了。 我的问题是无法在venv中安装任何东西,比如django,但当我升级了pip后一切都正常了。 你需要使用的命令是:

Windows命令提示符

> python -m pip install --upgrade pip

Linux Terminal

$ pip install --upgrade pip

MacOS终端

$ pip install --upgrade pip

1
这个问题已经解决了:


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

2
你的回答可以通过添加更多支持信息来改进。请[编辑]以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是否正确。你可以在帮助中心找到有关如何编写良好答案的更多信息。 - Community

0
我发现,只需使用较短的路径即可解决此错误。尝试在C:目录中创建您的虚拟环境。希望这可以帮到您。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接