python脚本中的mysqldump但找不到命令

时间:2016-12-11 20:23:45

标签: python mysql django eclipse

我需要在django函数中执行mysqldump。我可以从终端命令行轻松地做到这一点,但当我尝试从python脚本中运行它时,我收到一个错误:

sh: mysqldump: command not found 
运行以下内容时

filestamp = date.today()
dumpcmd = "mysqldump -u root appdb > appdb%s.out" % (filestamp)
os.system(dumpcmd)

我认为问题与django应用程序或Eclipse中的Path有关,但我无法弄清楚为什么无法从django应用程序中找到mysqldump但它可以来自命令行/的virtualenv

1 个答案:

答案 0 :(得分:0)

确保mysqldump在您的路径中

$ whereis mysqldump; echo $PATH
mysqldump: /usr/bin/mysqldump /usr/share/man/man1/mysqldump.1.gz
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

和/或

using mysqldump and mysql inside python

import subprocess
subprocess.Popen('mysqldump -h localhost -P 3306 -u -root appdb > appdb.sql', shell=True)

或者使用Python语句中的完整路径。例如/usr/bin/mysqldump