【发布时间】:2019-08-02 08:54:44
【问题描述】:
我正在尝试使用 subprocess 命令在 Python 脚本中运行 psql 命令。
我使用 Windows 环境,psql 命令旨在恢复位于远程 Linux 服务器中的数据库。
sn-p 就是这个:
import os, sys
import subprocess
subprocess.call('psql -h ip_remote_server -p port -U user-d database -n schema --file="C:\Docs\script.sql"')
这不起作用,控制台告诉找不到指定的文件。
任何帮助将不胜感激!
谢谢!
【问题讨论】:
-
是否有不使用 psycopg2 的具体原因?
-
你能提供完整的回溯吗?我们不知道 Python 是否无法找到
psql或"C:\Docs\script.sql"。此外,您可能必须使用双反斜杠,因为 Python 将"\D"视为"D"。所以试试"C:\\Docs\\script.sql"。 -
其实,当我运行一个简单的 subprocess.call('psql') 我有同样的错误信息:WindowsError: [Error 2] specified file can't be found
-
您需要提供
psql的路径。如果您使用反斜杠,则需要转义它们(例如"C:\\Program Files\\psql\\psql.exe")。
标签: python windows subprocess psql