2016-04-13 39 views
1

Ben HTSQL entegre etmek istiyorum (dosya bulunamadı) mod_wsgi kullanılarak apache sunucuda. Hem apache hem de mod_wsgi başarıyla yapılandırıldı, Merhaba dünya python betiği yürütüyor ve çalışıyor! Ben HTSQL python komut çalıştırmayı denediğinizdeCant bağlantı kurmak: HTSQL mod_wsgi aracılığıyla

Ancak (htsql_wsgi.py adlandırılır ve bu talimatları kullanarak: http://htsql.org/doc/admin/deploy.html), bir 500 iç sunucu hatası olsun. Bana bir çözüm önerebilir misin?

Apache hata günlüğü gösterir: Daha önce de denedim

[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 

Things

: Linux üzerinde doğrudan çalışma

  1. Çoğalt hatası (şu anda MAMP çalışan)

  2. Başarıyla senaryoyu yürütmek aynı sunucuda bulunan aynı dosya (htsql_demo.sqlite) üzerinde python (hem cmd hem de xUbuntu terminali) üzerinden doğrudan. izinleri httpd.conf üzerinde izinlerine sahip

  3. Çal (dizin, dosyalarını kullanarak ayarlarını değiştirerek, konumları)

Sorun MAMP kullanılarak gerçekleşir (htsql_demo.sqlite içeren klasöre 777 set) (Windows ile

  • Çal 7, Apache 2.2, Python 2.7.) Veya xUbuntu (Apache 2.4., Python 2.7.). Her iki makinede de hata aynıdır. Önerileriniz

  • +0

    Eğer veritabanı dosyası için kullandığınız yol adı nedir? İşlemin geçerli çalışma dizini kodunuzun olduğu yerde olmayacağı için göreli bir yol adı kullanmamalısınız. –

    +0

    sqlite: /// C: \ MAMP \ Scripts \ htsql_demo.sqlite; oracle: C: \ MAMP \ Komut \ htsql_demo.sqlite; oracle: // C: /MAMP/Scripts/htsql_demo.sqlite; ve benzerleri… Doğru olan ne olmalı biliyor musunuz? – Dfinzgar

    +0

    "sqlite: /// C: /MAMP/Scripts/htsql_demo.sqlite" ile deneyin. Ters eğik çizgi, Python'daki dizelerdeki ters eğik çizgileri, Windows'taki yollar için kullanmayın; ters eğik çizgi, aşağıdaki karakterden kaçmış olarak yorumlanır. –

    cevap

    0

    sorun için

    çok teşekkür ederiz mutlak yolunu tanımlayan ile oldu. Yerine ":" bir "% 3A" kullanmalıdır nedenle doğru yol olacaktır:

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

    İki ':' seçeneğiniz var ancak bir tane değiştirin! içe aktarma urllib; s = 'sqlite: /// C:/MAMP/Scripts/htsql_demo.sqlite', çıktı urllib baskıdır.Alıntı * sqlite% 3A /// C% 3A/MAMP/Scripts/htsql_demo.sqlite'. Bu cevap sadece sizin için bir sorunu giderir. – dsgdfg