2015-09-15 49 views
1

最近我正在研究我的Django網絡應用程序,當我發現由於某種原因,Django只在我使用Python 2.x時才起作用。解釋器,但我一直認爲它已經爲Python 3配置,因此編碼就像這樣。Django和Python六個兼容模塊

所以我用print(sys.version())對它進行了測試,當Python 2.7發佈時我感到很驚訝。經過一點挖掘,我發現Django使用six模塊。我的第一個問題是爲什麼Django使用這個?除了讓程序員更容易之外,還有什麼原因嗎?我的第二個問題是,因爲我一直把它當作Python 3來對待它,所以我應該回去改變我的代碼,使它成爲純Python 2?或者沒有關係?

P.s.我有點理解六件作品的情況,但能多瞭解一些作品真是太棒了。

謝謝。

回答

2

Django 1.5是支持Python 3的Django的第一個版本。相同的代碼在Python 2(≥2.6.5)和Python 3(≥3.2)上運行,這要感謝六個兼容層。

如果您的目標是Python ≥ 2.6,寫入兼容的代碼要容易得多。 Django 1.5介紹兼容性工具,如django.utils.six,這是六個模塊的定製版本。爲了方便起見,在Django 1.4.2中引入了向前兼容的別名。如果您的應用程序利用這些工具,它將需要Django ≥ 1.4.2

對於更多的是通過Porting to Python 3

0

哪個Python版本系統使用具有毫無關係做六個模塊讀取。這是Django內部使用的,可以同時使用2.7和3.x.

如果你想在本地使用Python 3,你需要配置你的系統來這樣做。例如,這可能意味着用Python 3創建你的虛擬機。