import subprocess
subprocess.Popen(["start", r"C:\Users\John\Desktop\Goals.txt"], shell=True)
我希望Windows(我的操作系统)会启动,Notepad.exe会处理Goals.txt文件。
相反,它返回了这个:
什么是venv
,为什么会有venv
?我怎样才能解决这个问题?我也尝试使用其他文件,例如"C:\Windows\Media\Alarm01.wav"
,此方法有效。是因为文件存储在哪里?谢谢
venv
表示当前外壳正在使用“虚拟环境”。激活这样的环境时,最重要的区别是PATH
值已更改。 PATH
环境变量用于在不同目录中搜索键入的可执行文件。例如,如果您在终端中键入python
,它将执行从环境变量python
中提到的目录列表中找到的第一个PATH
可执行文件。
这完全是正常和好的做法。
[当您在不同的项目上工作时,有时需要混合并匹配不同的Python版本和软件包版本。因此,强烈建议始终为每个新项目简单创建一个新的venv
。这样,您可以最大程度地减少回归问题。您不会因为以前的项目需要升级版本(Python /程序包/两者)而破坏了先前项目中的某些内容。
这些venv
可以用python -m venv
手动管理。或者,也可以通过您的IDE。创建新的venv
时,它将同时包含单独的Python和已安装的软件包。当您激活venv
(通过执行bin / activate)时,它还会向外壳添加一个指示器-您在终端中看到的(venv)
。
我无法从docs链接到一个有帮助的确切段落
If shell is True, the specified command will be executed through the shell.
...
...
On Windows with shell=True, the COMSPEC environment variable specifies the default shell.
The only time you need to specify shell=True on Windows is when the command you wish to
execute is built into the shell (e.g. dir or copy). You do not need shell=True to run a
batch file or console-based executable.
它似乎像shell=True
一样是问题。