子进程不正确地解释 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
。我不知道我在这上面花了多少时间……总是从最明显的东西开始,伙计们。案件结案。
我被一个有趣的问题难住了:我试图执行一个命令,将本地文件复制到 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
。我不知道我在这上面花了多少时间……总是从最明显的东西开始,伙计们。案件结案。