我需要在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
答案 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