子进程FileNotFoundError:[错误2]在PATH中打开外部程序时,没有这样的文件或目录

时间:2019-10-21 08:52:02

标签: python subprocess

我在Mac上工作,并且尝试使用Python中的子进程模块打开一个外部程序(Visual Studio Code)。 code二进制文件位于usr/local/bin变量中的PATH中。当我使用python3.8 main.py在shell上运行代码时,我的代码工作正常。但是,当我使用IDLE运行程序时,Python会不断给我

Traceback (most recent call last):
  File "/Users/mike/Desktop/main.py", line 33, in <module>
    subprocess.Popen(['code'])
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py", line 854, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py", line 1702, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'code'

我的代码非常简单:

import subprocess
subprocess.Popen(['code'])

有人知道原因是什么,如何解决?

谢谢大家。

2 个答案:

答案 0 :(得分:0)

如果有扩展名,您可以在打开文件时尝试使用该扩展名吗?另外,我们可以尝试提供一次绝对路径。

答案 1 :(得分:0)

尝试使用Visual Studio代码的完整路径,而不只是使用“代码”一词

subprocess.Popen(['usr/local/code'])