2016-04-13 9 views
1

I HTSQL auf Apache Server mit mod_wsgi integrieren möchten. Apache und mod_wsgi wurden erfolgreich konfiguriert, Hallo Welt Python-Skript ausgeführt wird und funktioniert!Cant Verbindung herstellen: HTSQL über mod_wsgi (Datei nicht gefunden)

aber wenn ich versuche, HTSQL Python-Skript (namens htsql_wsgi.py und mit diesen Anweisungen: http://htsql.org/doc/admin/deploy.html) laufen zu lassen, erhalte ich einen 500 Internal Server Error. Können Sie mir eine Lösung vorschlagen?

Apache Fehlerprotokoll zeigt:

[Wed Apr 13 16:26:29 2016] [error] [client 127.0.0.1] mod_wsgi (pid=5760): Target WSGI script 'C:/MAMP/scripts/htsql_wsgi.py' cannot be loaded as Python module. 
[Wed Apr 13 16:26:29 2016] [error] [client 127.0.0.1] mod_wsgi (pid=5760): Exception occurred processing WSGI script 'C:/MAMP/scripts/htsql_wsgi.py'. 
[Wed Apr 13 16:26:29 2016] [error] [client 127.0.0.1] Traceback (most recent call last): 
[Wed Apr 13 16:26:29 2016] [error] [client 127.0.0.1] File "C:/MAMP/scripts/htsql_wsgi.py", line 8, in <module> 
[Wed Apr 13 16:26:29 2016] [error] [client 127.0.0.1]  application = HTSQL(DB) 
[Wed Apr 13 16:26:29 2016] [error] [client 127.0.0.1] File "C:\\MAMP\\bin\\python\\lib\\site-packages\\htsql\\core\\application.py", line 186, in __init__ 
[Wed Apr 13 16:26:29 2016] [error] [client 127.0.0.1]  % (addon.name, exc)) 
[Wed Apr 13 16:26:29 2016] [error] [client 127.0.0.1] ImportError: failed to initialize 'htsql': failed to establish database connection: file does not exist: htsql_demo.sqlite 

Dinge, die ich schon versucht habe:

  1. Replizieren Fehler direkt auf Linux arbeiten (aktuell MAMP Arbeits)

  2. Erfolgreich Skript ausführen direkt über Python (sowohl Cmd und XUbuntu Terminal) auf der gleichen Datei (htsql_demo.sqlite) gehostet auf dem gleichen Server .

  3. Wiedergabe mit den Berechtigungen (777 gesetzt htsql_demo.sqlite in Ordnern enthalten)
  4. Wiedergabe mit Berechtigungen für httpd.conf (Ändern von Einstellungen Verzeichnis verwenden, Dateien, Standorte)

Problem tritt auf MAMP (Windows 7, Apache 2.2., Python 2.7.) Oder xUbuntu (Apache 2.4., Python 2.7.). Auf beiden Maschinen ist der Fehler gleich.

Vielen Dank für Ihre Anregungen

+0

Was ist der Pfadname Sie für die Datenbank-Datei verwenden? Sie sollten keinen relativen Pfadnamen verwenden, da das aktuelle Arbeitsverzeichnis des Prozesses sich nicht in Ihrem Code befindet. –

+0

Versuchte mehrere verschiedene Pfade wie sqlite: /// C: \ MAMP \ Scripts \ htsql_demo.sqlite; sqlite: C: \ MAMP \ Skripts \ htsql_demo.sqlite; sqlite: // C: /MAMP/Scripts/htsql_demo.sqlite; und so weiter und so fort ... Weißt du, was sollte der richtige sein? – Dfinzgar

+0

Versuchen Sie mit "sqlite: /// C: /MAMP/Scripts/htsql_demo.sqlite". Verwenden Sie Backslashes in Strings in Python nicht für Pfade unter Windows, da der Backslash als das folgende Zeichen interpretiert wird. –

Antwort

0

Das Problem war, mit dem absoluten Pfad zu definieren. Statt „:“ sollte man „% 3A“ verwenden daher der richtige Weg wäre:

'sqlite:///C%3A/MAMP/Scripts/htsql_demo.sqlite' 
+0

Sie haben zwei ':' aber ersetzen Sie eins! 'importieren Sie Urlib; s = 'sqlite: /// C:/MAMP/Scripts/htsql_demo.sqlite'', Ausgabe ist 'print urllib.Zitat (e) '' sqlite% 3A /// C% 3A/MAMP/Scripts/htsql_demo.sqlite'. Diese Antwort behebt nur ein Problem für Sie. – dsgdfg

Verwandte Themen