此问题已解决,并向 Python.org 提交了错误报告。请参阅下面我的自我回答以了解解决方法,直到它在 Python 的未来版本中得到修复
\n我的一台电脑被这个 bug 咬了,它不再允许我创建 venv,并出现以下错误:
\nError: Command \'[\'C:\\\\Users\\\\kesh\\\\test\\\\.venv\\\\Scripts\\\\python.exe\', \'-Im\', \'ensurepip\', \'--upgrade\', \'--default-pip\']\' returned non-zero exit status 101.\nRun Code Online (Sandbox Code Playgroud)\n\n我试图弄清楚究竟发生了什么,但很快就没有想法了。以下是我到目前为止所尝试过的:
\nvenv通过运行 Python进入源代码venv.main(args=(\'.venv\',)),逐行调试,并注意到它使用Lib\\venv\\scripts\\nt\\python.exe.py 从 python 安装目录复制到本地文件夹。.venv\\Scriptsshutil.copyfile()Lib\\venv\\scripts\\nt\\python.exe,它会运行一条消息No pyvenv.cfg file(这是有道理的,因为 .cfg 文件位于.venv它看不到的文件夹中).venv\\Scripts\\python.exe,则会返回错误Unable to create process …我发现了类似的帖子,主要与 venv 上的 linux 相关,但工作有问题。python 3.8 venv缺少激活命令但是,我对如何在Windows上解决它以及发生了什么感到困惑。
我通过在 pythons 网站上下载安装了 python3.8。然后我按照 3.8 文档https://docs.python.org/3/library/venv.html显示:
python3 -m venv /path/to/new/virtual/environment
我这样做了,但随后出现以下错误:
Error: Command '['E:\\py_envs\\hf4\\Scripts\\python.exe', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 101.
Run Code Online (Sandbox Code Playgroud)
当我使用:
python -m venv --without-pip hf4
进而 hf4\Scripts\activate
它适用于激活。我不明白的是,然后我可以运行 pip 并且它在激活的环境中就在那里。这似乎是一个相关的问题,我在系统 python 上安装的任何东西也可用。例如,在激活的会话中:
(hf4) E:\py_envs>where pip
C:\Users\local user\AppData\Local\Programs\Python\Python38\Scripts\pip.exe
Run Code Online (Sandbox Code Playgroud)
一个问题自然是如何解决这个问题,另一个问题是我希望对正在发生的事情进行解释以更好地理解它。是不是先搜索活动环境,找不到就默认系统版本?