2010-08-13 23 views
24

Artık devam eden Py3k/WSGI felaketinin sorunlarının en kısa zamanda çözülmesini umduğumu anlayamadım, bu yüzden yola devam etmem gerekiyor. Python 3 Web ağ geçidi arabirimleri

Maalesef benim seçenekler çok daha iyi görünmüyor: Ben web etrafında dağınık FastCGI için birkaç farklı Python modülleri, bunların hiçbiri bulurken

  • çok almak gibi görünmektedir (varsa) özellikle Python 3.x ile ilgili olarak dikkat ve/veya bakım, ve eğer varsa, hangisinin gerçekten uygun olduğunu ayırt etmek zordur.
  • geri yerleşik CGI modülüne tüm yol Düşen sıfırdan (kötüsü, Python 3.3 kadar dikkat alamayabilirsiniz önemli hata ya da orada iki tane) kendimi bir bina inşa etmekten pek iyidir.
  • üretim webapp HTTP doğrudan ele daha yükseğe günah yoktur. Ve yine de, tekerleği yeniden icat eden hala.

Şüphesiz birileri orada üretimde 3.x üzerinde webapps görevlendirecek. Hangi ağ geçidi arabirimini kullanıyorsunuz, hangi modüllerle/kütüphanelerle, ve neden?

+0

Henüz Python 3 bağlantı noktası olan büyük isimlerden (Django, Twisted, Zope) haberdar değilim, ancak bu kesinlikle yararlı bir soru –

+0

@Wayne: "Web uygulamaları" diyorum ama Şu an üzerinde durduğum şey şudur: web tabanlı API'ler (özellikle mevcut projede SOAP, ick). Dolayısıyla, büyük üçüncü taraf çerçevelerine daha az bağımlıyım ve şu anki kodum WSGI katmanında. –

+0

Eh, ben WSGI ile Python3 kullanmıyorum, bu yüzden aldığınız sorunları aşina değilim. Bunun için Python3'ü kullanmak için iyi bir şey (sadece erken evlat edinmek istemek dışında) var mı? –

cevap

2

CherryPy 3.2 sürüm adayları Python 3.x destekleyen Sadece WSGI'yi web sunucusu arabirim katmanında desteklediğinden ve tüm yığından değil, WSGI'nin değişip değişmeyeceği konusunda sorunlardan yalıtılmıştır. CherryPy kendi dahili WSGI sunucusuna sahiptir, ancak Python 3.1+ ile Apache/mod_wsgi altında da çalışabilir. Bkz:

http://www.cherrypy.org/wiki/WhatsNewIn32 http://code.google.com/p/modwsgi/wiki/SupportForPython3X

+3

Dünyadaki tüm saygılar sizin için, Graham, ama bu cevap temelde, başka bir kullanımım olmadığı karmaşık bir çerçevenin yayın öncesi sürümüne bir bağımlılık eklememizi öneriyor. Kendimi WSGI'den "yalıtmaktan" (ilk etapta ihtiyacım olmaması gereken bir şey). Bu çok tatmin edici değil. Diğer cevapların eksikliğini göz önünde bulundurarak, FastCGI paketleyicilerinden birini benimsemek/taşımak ve bunu sürdürmek, bu noktada en ticari uygulanabilir seçenek olarak görünüyor. :( –

+1

Sadece size sorduğunuz gibi seçenekler veriyorum.Bu sürüm için CherryPy dokümantasyon sayfasına bakarsanız, aynı zamanda geliştirilmiş FASTCGI desteğinden de bahseder.Yani okuduğum şekilde, WSGI için kendi FASTCGI adaptörüne sahip ve Aynı zamanda Python 3.X üzerinde de çalışır.Bununla birlikte, CherryPy, Pyyhon 3.X üzerinde çalışmanın bir yolunu bulmaya çalışan tek önemli çerçevedir, dolayısıyla kesinlikle bir şey öğrenilebilir. Python 3.X üzerinde çalıştığını iddia eden Şişe, ancak sadece WSGI üzerinde çalışır ve bu nedenle Apache/mod_wsgi'ye bağımlıdır. –

+0

Graham ve diğer yorumculardan birçoğuna katılıyorum: 1. Python ile yuvarlanıyorsanız 3, erken bir evlat edersiniz 2. CherryPy iyi bir çözümdür 3. İnsanlar yazmamalı web uygulamaları için çerçeve olmayan Python. Sadece çerçeveler tamamen WSGI seviyesinde olmalıdır. –

1

şişe Python 3'ü destekler, ama kırık stdlib muzdarip. Ancak, multipart reimplements cgi.FieldStorage ve bir Python 3 WSGI web uygulaması oluşturmak için şişe ile kullanılabilir. Az önce bir demo yayınladım. Şu an için sadece bir test, ama söyleyebileceğim kadarıyla iyi çalışıyor.

İlgili konular