python - 使用 subprocess.check_output() 打印 Ifconfig 会出错
问题描述
文件名是 Main.py
import subprocess
Interface = "eth0"
output1 = subprocess.check_output(["ifconfig", Interface])
当我尝试在上面执行时,我收到以下错误。
/kunal/PycharmProjects/first/venv/bin/python /kunal/PycharmProjects/first/main.py
Traceback (most recent call last):
File "/kunal/PycharmProjects/first/main.py", line 4, in <module>
output1 = subprocess.check_output(["ifconfig", Interface])
File "/usr/lib/python3.8/subprocess.py", line 411, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "/usr/lib/python3.8/subprocess.py", line 489, in run
with Popen(*popenargs, **kwargs) as process:
File "/usr/lib/python3.8/subprocess.py", line 854, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/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: 'ifconfig'
Process finished with exit code 1
运行程序时环境的相关部分是:
HOME: /kunal
PATH: /kunal/PycharmProjects/first/venv/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
PS1: (venv)
PWD: /kunal/PycharmProjects/first
PYCHARM_HOSTED: 1
PYTHONIOENCODING: UTF-8
PYTHONPATH: /kunal/PycharmProjects/first
PYTHONUNBUFFERED: 1
SHELL: /bin/bash
USER: kunal
VIRTUAL_ENV: /kunal/PycharmProjects/first/venv
shell 上的 'env' 路径是:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
“which ifconfig”的结果:
/usr/sbin/ifconfig
解决方案
$PATH
变量中不存在路径。
nano /etc/bash.bashrc
Export PATH=$PATH:/usr/sbin
有像 ifconfig 这样的Add As 命令。
推荐阅读
- reinforcement-learning - 强化学习中的小批量
- asp.net-core - 将 SignalR 添加到现有 IdentityServer4 授权
- qt - qt-creator-4.8.0 字体模糊问题
- python - 将原始字节转换为图像
- aws-api-gateway - AWS API Gateway - 我可以在不中断客户端的情况下更改自定义域名的 base_mapping 吗?
- sql - 如何获取过去 12 个月的数据并在 HIVE 中按月拆分?
- java - 在 Java 中使用 HtmlUnit 单击 Html 按钮
- python - 如何在 Python 中启动子进程,以便它使用 pty 而不是管道将 I/O 连接到父进程?
- sql - 如何在时区值来自另一列的情况下进行时间戳转换
- typo3 - TYPO3 Fluid:只有一些 HTML 标签没有在流体模板中呈现