Windows系统中无法创建Python虚拟环境的问题求助
问题描述
在Windows系统中创建Python虚拟环境时遇到异常,具体操作和现象如下:
异常场景(项目目录执行命令)
在路径O:\Workspaces\VSCPython\venvTest下执行命令后,未生成目标虚拟环境testVENV,仅出现__pycache__目录:
PS O:\Workspaces\VSCPython\venvTest> dir Verzeichnis: O:\Workspaces\VSCPython\venvTest Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 28.03.2023 09:48 66 venv.py PS O:\Workspaces\VSCPython\venvTest> python -m venv testVENV ['O:\\Workspaces\\VSCPython\\venvTest', 'C:\\Users\\ysteiner\\AppData\\Local\\Programs\\Python\\Python311\\python311.zip', 'C:\\Users\\ysteiner\\AppData\\Local\\Programs\\Python\\Python311\\DLLs', 'C:\\Users\\ysteiner\\AppData\\Local\\Programs\\Python\\Python311\\Lib', 'C:\\Users\\ysteiner\\AppData\\Local\\Programs\\Python\\Python311', 'C:\\Users\\ysteiner\\AppData\\Roaming\\Python\\Python311\\site-packages', 'C:\\Users\\ysteiner\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages'] PS O:\Workspaces\VSCPython\venvTest> dir Verzeichnis: O:\Workspaces\VSCPython\venvTest Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 28.03.2023 10:42 __pycache__ -a---- 28.03.2023 09:48 66 venv.py
正常场景(Python安装目录执行命令)
在Python安装目录执行以下命令,成功创建虚拟环境:
PS C:\Users\ysteiner\AppData\Local\Programs\Python\Python311> .\python.exe -m venv C:\temp\venv2
系统环境变量Path
C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Users\ysteiner\AppData\Local\Programs\Python\Python311;C:\Users\ysteiner\AppData\Local\Programs\Python\Python311\Scripts\;C:\cygwin64\bin;C:\Program Files\Git\cmd;C:\Program Files\Git LFS;C:\Program Files\dotnet\;C:\Program Files (x86)\Plantronics\Spokes3G\;C:\Program Files (x86)\Subversion\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files\nodejs\;C:\msys64\mingw64\bin;C:\msys64\usr\bin;C:\Program Files\TortoiseGit\bin;C:\Users\ysteiner\.cargo\bin;C:\Users\ysteiner\AppData\Local\Programs\Python\Python311\Scripts\;C:\Users\ysteiner\AppData\Local\Programs\Python\Python311\;C:\Users\ysteiner\AppData\Local\Microsoft\WindowsApps;C:\Users\ysteiner\.dotnet\tools;C:\Users\ysteiner\AppData\Roaming\npm;C:\Users\ysteiner\AppData\Local\Programs\Microsoft VS Code\bin
同时使用VSCode创建虚拟环境也出现相同失败现象,请问问题出在哪里?
问题原因与解决方案
核心原因
当前工作目录下存在同名的venv.py文件,导致执行python -m venv时,Python优先加载了当前目录下的venv.py,而非系统自带的venv标准库模块。从命令执行后输出的sys.path列表也能看到,当前目录O:\Workspaces\VSCPython\venvTest排在最前面,Python会优先搜索这个路径下的模块。
你当前目录的venv.py应该只是打印了sys.path内容,并没有执行创建虚拟环境的逻辑,所以只会生成该脚本的__pycache__缓存目录,而不会创建目标虚拟环境。
而在Python安装目录执行命令时,该目录下没有venv.py文件,Python会正常加载系统自带的venv模块,因此能成功创建虚拟环境。
解决方案
- 重命名或删除当前目录下的
venv.py文件:# 重命名示例 Rename-Item -Path .\venv.py -NewName .\my_venv_demo.py # 或直接删除 Remove-Item -Path .\venv.py - 重新执行创建虚拟环境的命令:
python -m venv testVENV - 验证结果:再次执行
dir命令,应该能看到生成的testVENV目录。
VSCode创建虚拟环境失败也是同样的原因,解决上述问题后,VSCode也能正常创建虚拟环境。
内容的提问来源于stack exchange,提问作者yannick818
相关产品推荐
相关产品推荐

