2017-11-22 1 views
0

Python 2,7erstellen Erweiterung PostGIS in Python

if __name__ == '__main__': 
    import os 
    app = Flask(__name__) 
    os.system("dropdb biobreak") 
    os.system("createdb biobreak") 
    os.system("CREATE EXTENSION postgis") 

In der letzten Zeile ich diesen Fehler:

(env) vagrant @ Vagabund: biobreak $ python seed.py

sh: 1 : CREATE: nicht gefunden

Ich habe versucht, Subprozess durch die Syntax zu importieren, hat mich verrückt gemacht.

EDIT:

Ich habe versucht, den folgenden Befehl ein:

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) 

habe diesen Fehler:

cr_ext: Keine solche Datei oder das Verzeichnis fehlgeschlagen psql aufzurufen: Befehl '[' psql‘ , '-q', '-U', 'Vagabund', '-f', 'cr_ext', 'biobreak'] 'gab einen Nicht-Null-Exit-Status zurück 1

Antwort

0

Okay, ich habe es funktioniert. Statt einer Variablen muss mein Befehl in einer Datei sein. Daher die Fehlermeldung Keine Datei oder Verzeichnisfehler. cr_ext.sql => 'create extension postgis;' Hier

ist der Arbeitscode:

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) 
Verwandte Themen