Python 2.7
if __name__ == '__main__':
import os
app = Flask(__name__)
os.system("dropdb biobreak")
os.system("createdb biobreak")
os.system("CREATE EXTENSION postgis")
在最后一行我收到此错误:
(env)vagrant @ vagrant:biobreak $ python seed.py
sh:1:创建:未找到
我尝试通过语法导入子进程让我发疯。
编辑:
我尝试了以下命令:
import subprocess
cr_ext = "create extension postgis;"
try:
subprocess.check_call([
'psql', '-q',
'-U', 'vagrant',
'-f', 'cr_ext',
'biobreak'
])
except subprocess.CalledProcessError, ex:
print "Failed to invoke psql: {}".format(ex)
出现此错误:
cr_ext:没有这样的文件或目录 无法调用psql:命令'['psql',' - q',' - U','vagrant',' - f','cr_ext','biobreak']'返回非零退出状态1
答案 0 :(得分:0)
好的,我明白了。我的命令不是变量,而是需要在文件中。因此,No文件或目录错误消息。 cr_ext.sql => '创建扩展postgis;'
以下是工作代码:
import subprocess
try:
subprocess.check_call([
'psql', '-q',
'-U', 'vagrant',
'-f', '/home/vagrant/src/projects/biobreak/cr_ext.sql',
'biobreak'
])
except subprocess.CalledProcessError, ex:
print "Failed to invoke psql: {}".format(ex)