Python 在jupyter笔记本中运行时,子进程命令失败
这在解释器中起作用Python 在jupyter笔记本中运行时,子进程命令失败,python,subprocess,jupyter,Python,Subprocess,Jupyter,这在解释器中起作用 python Python 2.7.15rc1 (default, Nov 12 2018, 14:31:15) [GCC 7.3.0] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import subprocess >>> subprocess.call(["sudo", "apt", "update"]) [s
python
Python 2.7.15rc1 (default, Nov 12 2018, 14:31:15)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> subprocess.call(["sudo", "apt", "update"])
[sudo] password for stefan:
Get:1 file:/var/cuda-repo-10-1-local-10.1.105-418.39 InRelease
Ign:1 file:/var/cuda-repo-10-1-local-10.1.105-418.39 InRelease
.
.
.
etched 2,778 kB in 1s (2,305 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
12 packages can be upgraded. Run 'apt list --upgradable' to see them.
0
>>> exit()
但如果我把它放在jupyter的一间牢房里,我会得到:
import subprocess
subprocess.call(["sudo", "apt", "update"])
output: 1
subprocess.check_call(["sudo", "apt", "update"])
CalledProcessError Traceback (most recent call last)
<ipython-input-21-33ce645708e7> in <module>()
----> 1 subprocess.check_call(["sudo", "apt", "update"])
/usr/lib/python2.7/subprocess.pyc in check_call(*popenargs, **kwargs)
188 if cmd is None:
189 cmd = popenargs[0]
--> 190 raise CalledProcessError(retcode, cmd)
191 return 0
192
CalledProcessError: Command '['sudo', 'apt', 'update']' returned non-zero exit status 1
导入子流程
子进程调用([“sudo”、“apt”、“update”])
产出:1
子进程检查调用([“sudo”、“apt”、“update”])
CalledProcessError回溯(最近一次呼叫上次)
在()
---->1子进程检查调用([“sudo”、“apt”、“update”])
/检查调用中的usr/lib/python2.7/subprocess.pyc(*popenargs,**kwargs)
188如果cmd为None:
189 cmd=popenargs[0]
-->190升起被调用的进程错误(retcode,cmd)
191返回0
192
CalledProcessError:命令“[”sudo“,”apt“,”update“]”返回非零退出状态1
使用类似于check\u output()
的方法而不是check\u call()
将返回错误字符串,并且更具描述性。查看文档。jupyter进程是否以sudo
权限运行?当然,您是对的!如果jupyter允许权限升级,这将是一个重大的安全漏洞。当jupyter作为root用户运行时-没有问题。谢谢。使用类似于check\u output()
的方法而不是check\u call()
将返回错误字符串,并且更具描述性。查看文档。jupyter进程是否以sudo
权限运行?当然,您是对的!如果jupyter允许权限升级,这将是一个重大的安全漏洞。当jupyter作为root用户运行时-没有问题。非常感谢。