1. 程式人生 > 其它 >gdb 版本和gcc版本的對應關係_Python——django避坑(版本對應關係)

gdb 版本和gcc版本的對應關係_Python——django避坑(版本對應關係)

技術標籤:gdb 版本和gcc版本的對應關係

前言:

django框架和python不必多說,寫起程式碼來功能實現速度非常快,但是對於某些定製化修改不可避免有些小坑在其中,本篇將簡單聊一聊python對應django版本的坑;

具體事例:

首先,相信使用django的朋友或多少碰到過以下報錯:

前面寫了好幾個介面,功能實現的很順利,有一個介面需要處理上傳的圖片,或者寫完介面想要從管理面手動插入幾條測試資料,然後介面一測或者測試資料一儲存就蹦出來了500的狀態碼,然後報錯資訊主要就是下邊的樣子:

Exception Type:	RuntimeError
Exception Value:	
generator raised StopIteration
Exception Location:	/Users/dongchao/.virtualenvs/py_django/lib/python3.7/site-packages/django/http/multipartparser.py in read, line 337
Python Executable:	/Users/dongchao/.virtualenvs/py_django/bin/python
Python Version:	3.7.4

相關分析:

從報錯狀態來看就有點莫名其妙,然後generator raised StopIteration然後看相關程式碼也是框架中的程式碼,首先回去看一下自己呼叫介面的程式碼,完全沒有使用迭代器,使用框架傳遞的引數也是完全正確;這時候思考下才想起來上網上找找答案,搜尋了半天,不知道你會從哪裡找到答案,我一般最終答案總在stackoverflow找到的答案:反正答案總是,你的django版本太舊了;

Your Django is very old and you need to update. This is a Python 3.7 compatibility problem that the Django devs already fixed four years ago, back when it was just a PendingDeprecationWarning on Python 3.5.

In fact, you are on the very last Django version that doesn't have the fix. Even 1.8.6 has the fix.

關鍵是連續碰到不同問題都是指向這樣的答案,功能介面實現的七七八八,最後出現這樣的么蛾子是在有點痛心,整理了下資料,彙總下python對應django適配版本,讓更多人使用時候對應好版本避免繼續踩坑;

相關結論:

以下是整理相關python對應django版本的對應表,開始django前建議根據匹配版本避坑,如有相關問題可私信共同探討;

Django version ——Python versions

1.11 —— 2.7, 3.4, 3.5, 3.6, 3.7 (added in 1.11.17)

1.8 —— 2.7, 3.2 (until the end of 2016), 3.3, 3.4, 3.5

1.9,1.10 —— 2.7,3.4,3.5

2.0 —— 3.4, 3.5, 3.6, 3.7

2.1, 2.2 —— 3.5, 3.6, 3.7

3.0, 3.1 —— 3.6, 3.7, 3.8

另外對於python和mysql對應版本參考如下:(想上圖表,貌似沒看到知乎有圖表編輯功能,上圖片了)

16301a5b22b1349eb04f2f1269d43bb7.png
python——mysql對應

如有問題請私信給我;