子进程不正确地解释 MacOS `/private` 目录

subprocess improperly interpreting MacOS `/private` directory

我被一个有趣的问题难住了:我试图执行一个命令,将本地文件复制到 Postgres Docker 容器。代码:

command = "docker cp /tmp/app/dump.sql postgres-app:/tmp/postgres/backup/"
process = subprocess.Popen(
    shlex.split(command), stdout=subprocess.PIPE, stderr=subprocess.PIPE
)
stdout, stderr = process.communicate()

奇怪的是,stderr returns:

lstat /private/tmp/app/dump.sql: no such file or directory

我正在 Mac 上的这个目录中执行这些命令:

/Users/my-name/path/to/project

根据我的研究,错误 appears to be a Mac filesystem feature 中引用了 /private 目录。 Python 似乎将不正确的目录引用(带有 /private 前缀)传递给子进程,我不确定如何更正它。

感谢所有帮助...我正在本地测试此功能,但此文件最终将部署到 Linux 环境,其中 /private 目录不会有问题.这只是一个非常特殊的问题。 :-)

好吧,我真傻。 dump.sql 被命名为 backup.sql。我不知道我在这上面花了多少时间……总是从最明显的东西开始,伙计们。案件结案。