2016-12-11 54 views
0

我需要在django函數內執行mysqldump。我可以從終端命令行做很容易的,但如果我嘗試從python腳本中運行它,我得到一個錯誤:運行以下時mysqldump從python腳本內但沒有找到命令

sh: mysqldump: command not found 

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

我認爲這個問題有事情做與無論是在Django應用程序或者Eclipse的路徑,但我想不出爲什麼的mysqldump不能從Django應用程序中找到,但它可以從在命令行中/ virtualenv中

+0

您最好使用管理命令'dumpdata' – karthikr

+0

但您爲什麼要這麼做? – e4c5

+0

我想使用在線託管的同一數據庫來自動同步本地計算機上的數據庫。我通常追求的第一步是mysqldump,所以我試圖通過編程來複制。 –

回答

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