'.'不被识别为有效命令
'.' is not recognized as valid command
在 Windows (11) 上,我试图在 subprocess.run
中激活 python virtualenv,但是,我无法执行激活脚本 :
import subprocess
p = subprocess.run(".\venv\Scripts\activate.bat", shell=True, stderr=subprocess.PIPE)
print(p.stderr)
制作:
b"'.' n'est pas reconnu en tant que commande interne\r\nou externe, un programme ex\x82cutable ou un fichier de commandes.\r\n"
注意:.\venv\Scripts\activate.bat
正在 shell 提示符下工作。
我应该如何在 subprocess.run
中激活虚拟环境?
请记住,\
用于转义特殊字符。 \v
是一个 ASCII Vertical Tab,因此您的命令行的第一部分只是 .
。要解决此问题,请将 r
添加到您的字符串中。
p = subprocess.run([r".\venv\Scripts\activate.bat"], stderr=subprocess.PIPE)
请注意,我还删除了 shell=True。这不是必需的,因此不应使用。
哦,请记住,您不能从子进程更改一个进程的环境。所以,无论你想做什么,可能都行不通。
在 Windows (11) 上,我试图在 subprocess.run
中激活 python virtualenv,但是,我无法执行激活脚本 :
import subprocess
p = subprocess.run(".\venv\Scripts\activate.bat", shell=True, stderr=subprocess.PIPE)
print(p.stderr)
制作:
b"'.' n'est pas reconnu en tant que commande interne\r\nou externe, un programme ex\x82cutable ou un fichier de commandes.\r\n"
注意:.\venv\Scripts\activate.bat
正在 shell 提示符下工作。
我应该如何在 subprocess.run
中激活虚拟环境?
请记住,\
用于转义特殊字符。 \v
是一个 ASCII Vertical Tab,因此您的命令行的第一部分只是 .
。要解决此问题,请将 r
添加到您的字符串中。
p = subprocess.run([r".\venv\Scripts\activate.bat"], stderr=subprocess.PIPE)
请注意,我还删除了 shell=True。这不是必需的,因此不应使用。
哦,请记住,您不能从子进程更改一个进程的环境。所以,无论你想做什么,可能都行不通。