Bağlam: Ben orta boy şişe uygulaması (10-15 kez) yazıyorum ve bu süreçte, ben kolay yaşatılabilir hale getirecek şekilde kod organize etmek umuyorum ve genişletilebilir (çoğu Flask uygulaması olduğu gibi monolitik bir dosya değildir). Uygulama mimikler olarak documentation aitProcfile gunicorn özel modül adı
yapısı aşağıdaki gibidir:
/AwesomeHackings
/ENV
/AwesomeHackings
/models
/static
/templates
/__init__.py
/awesome.py
/awesome.cfg
/Procfile
/README.MD
/requirements.txt
/run.py
Sorun: 'uygulama' adlı olmayan bir şişe uygulama ile çalışmak için ustabaşı alamıyor . Run.py uygulamasının giriş noktası olmasını isterim.
Ben gunicorn + gevent kullanıyorum ve benim şimdiki Procfile içerir:
from AwesomeHackings import awesome
awesome.app.run(debug=True)
Böylece ben basitçe
run
yerine varsaymışlardı:
web: gunicorn -w 2 -b 0.0.0.0:$PORT -k gevent app:run
Uygulamayı test etmek run.py
kullanıyoruz Procfile içinde app
, ancak foreman start
yürütürken, gunicorn, modüller hakkında anlamsız bir sözel hata ile başarısız olur.
Çok benzer bir kurulumum var ve neden çalıştırıldığını anlamasam da: app, hala benim için çalışmıyor. Tam olarak ne, awesome.py dosyasında ne var? – Caroline
Bu durumda, awesome.py, uygulama nesnesinin tanımını içerir (ve basit monolitik flask uygulamaları yazdığımda, tüm görünümler, vb.). Tabanca attığınız dizinden 'app' nesnesini nasıl içe aktarırsınız? I.E. foo ithalat uygulamasından. Bu modül, değişken isim kombinasyonu gunicorn'a geçmesi gereken şey. Kurulumunuz hakkında daha fazla bilgi ve ayrıntı sağlayabilir misiniz? E-posta üzerinden yardım etmekten mutluluk duyuyorum (Kullanıcı adımı @ gmail.com) –
Başkalarının ilerideki referansları için. Sorunumu çözdüm ve http://stackoverflow.com/questions/22921187/flask-and-gunicorn-multiple-modules-circular-imports-not-all-routes-accessib adresinde nasıl olduğunu açıkladım. – Caroline