python - 在 Debian 上使用 Python 3 找不到 mkdir 命令

标签 python nginx debian uwsgi

我确信这很简单,但我尝试了几种设置,但似乎无法让它发挥作用。

我有以下代码:

import subprocess

p = subprocess.Popen('mkdir -p /backups/my_folder', stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)

它在 nginxpython 3 上的 flask 应用程序中运行

当执行此操作时,我收到以下错误:

/bin/sh: 1: mkdir: not found

我尝试过 shell=False,我尝试过 Popen(['mkdir', ...]),并且我尝试过 subprocess.run像这样question/answer

如果我使用 shell=False 运行,则会收到以下错误:

Error: [Errno 2] No such file or directory: 'mkdir -p /backups/my_folder': 'mkdir -p /backups/my_folder'

当我执行 /bin/mkdir 时,它起作用了。但是,还有其他命令调用失败的子命令(例如 tar 调用 gz)

为了让它发挥作用,我缺少什么?

运行:

Debian 9.8、Nginx 1.14.0、Python 3.6.8

编辑

我也需要它适用于其他命令。我知道我可以使用 os.makedirs,但我将执行几个不同的命令(rsync、ssh、tar 等)

最佳答案

对于这些简单的命令,请尝试使用 python 而不是调用 shell - 它使您更加独立于环境:

os.makedirs('/backups/my_folder', exist_ok=True)

关于python - 在 Debian 上使用 Python 3 找不到 mkdir 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56603517/

相关文章:

java - 无法在Debian上安装默认的jdk包

perl - 如果安装或未安装软件包,在 Ubuntu/Debian 中返回 0 或 1 的软件包管理器命令

python - 如何在 pandas groupby 中聚合多列

python - 列表中的最后一个对象在删除后不会被删除。什么时候有效删除?

python - 在 Django View 中嵌入交互式 Bokeh

django、react js、nginx : deploy prosses

python - 我应该为 'social' 网站的后端使用什么?

python - 在数据帧条目中搜索字符串并将其复制到 python

ssl - 在 cloudflare 中禁用 SSL 并在服务器端使用(Ubuntu 和 Nginx)

python - 如何使用 apt.progress 类检查 python_apt 中 commit() 的进度?