kes*_*esh 5 python windows python-venv
此问题已解决,并向 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 using \'C:\\Users\\kesh\\AppData\\Local\\Programs\\Python\\Python310\\python.exe\'(请注意,该python.exe进程的路径是已安装的 Python exe 的路径).venv安装成功(在虚拟 Windows 帐户上),上面的运行将按照您的预期启动 Python 会话。venv\\scripts\\nt\\python.exe与标准二进制文件不同python,并验证该文件及其源venv\\Scripts\\nt是相同的。.venv\\Scripts\\python.exe正确的事情,但我的环境变量非常干净,并且 python 路径位于用户 PATH 变量的顶部。.venv\\Scripts\\python.exe但尚未找到。如果您有任何其他想法可以尝试,请分享。
\n更新#1:
\nPC/launcher.c找到错误消息814行的来源CreateProcessW(NULL, cmdline,...哪里,不带引号。CreateProcessW 文档指出可执行文件名称是从字符串中的第一个空格 \xe2\x80\x93 分隔的标记推导出来的。虽然我用它替换了我的实际帐户名,但它实际上包含两个单词和一个空格......cmdlinecmdlinekesh更新#2:
\n找到的解决方案如下所示
\nkes*_*esh 15
宾果,更新 #1 中的发现就是原因。我的用户名中的空格是罪魁祸首。虽然我不知道是什么触发了我的帐户的这种行为变化......(任何有答案的人,请跟进。)
假设每个用户的 python 安装在
C:\Users\User Name\AppData\Local\Programs\Python\Python310
Run Code Online (Sandbox Code Playgroud)
就我而言,“Microsoft Visual C++ 2015-2022 Redistributable”安装程序 (VC_redist.x64.exe) 留下了一个日志文件C:\Users\User(一个文本文件,其中我的帐户名的第一部分作为其文件名)。这导致 python venv 用作C:\Users\Userpython 可执行文件并立即失败(有关完整说明,请参阅下面的问题跟踪器链接)。
在 Python 修复问题之前,您可以通过 2 种方式解决该问题。
只需删除文件即可C:\Users\User
注意:这将一直有效,直到下次另一个安装程序留下这个令人讨厌的日志文件。
在命令控制台中,运行
DIR /X C:\Users
Run Code Online (Sandbox Code Playgroud)
其中列出了类似的内容:
02/08/2022 11:44 AM <DIR> .
02/08/2022 11:44 AM <DIR> ..
11/19/2020 01:48 AM <DIR> Public
02/08/2022 02:47 PM <DIR> USERNA~1 User Name
Run Code Online (Sandbox Code Playgroud)
打开环境变量对话框并编辑 Path 用户变量的 Python 条目
C:\Users\User Name\AppData\Local\Programs\Python\Python310\Scripts
C:\Users\User Name\AppData\Local\Programs\Python\Python310
Run Code Online (Sandbox Code Playgroud)
到
C:\Users\USERNA~1\AppData\Local\Programs\Python\Python310\Scripts
C:\Users\USERNA~1\AppData\Local\Programs\Python\Python310
Run Code Online (Sandbox Code Playgroud)
重新打开 python 控制台窗口或应用程序,以便将路径更改应用于您的开发环境。
注意:只要您不更新 python 版本,此修复程序就会起作用。执行此操作时,您需要手动删除旧路径条目并更新新路径条目。
我向 python 错误跟踪器报告了这个错误:Issue 46686。他们已经承认了该错误,并将其标记为critical建议的修复方案。因此,希望它能在不久的将来版本中得到修复。(>3.10.2)
| 归档时间: |
|
| 查看次数: |
8293 次 |
| 最近记录: |