轉自: 白月黑羽在線教程:http://www.python3.vip/doc/blog/python/home/html
Python 3.7 已經發布了,目前Python的用戶,主要使用的版本 應該是 Python3.6 和 Python2.7 ,那麼是否是該轉到 Python 3.7 呢?python
首先你們要知道Python 3.7 是對 Python 3.6 的升級。Python官方對 3.7 的新特性描述連接以下:sql
https://docs.python.org/3/whatsnew/3.7.html數據庫
咱們最須要注意的是 相對於 3.6 來講, 3.7 在語法上幾乎是徹底 兼容, 除了以下這一點:安全
Backwards incompatible syntax changes: async and await are now reserved keywords.
這段話,指出了 3.7 的惟一不兼容 3.6 的地方就是 async 和 await 變成了Python語言中保留的關鍵字了。async
什麼意思?函數
就是 async 和 await 這兩個詞 就像 import, for, while 這些詞同樣, 是系統保留特殊用途的關鍵字。post
也就是說在Python 3.7 裏面你不能使用定義 變量、函數之類的 名字測試
好比,我像下面這樣定義變量和函數:spa
async = 1 def await(): pass
使用Python3.6 運行,沒有問題, 而在Python 3.7 裏面就會報以下錯誤
SyntaxError: invalid syntax
因此,若是項目 目前使用的是 Python 3.6 ,並且項目又比較大的話,我的建議不用太着急轉到 3.7 上去。 由於不知道你的項目代碼和依賴的第三方庫的代碼是否是作過3.7的兼容性測試, 畢竟 3.7 剛剛出來不久。
好比,白月黑羽寫這篇文章的時間是2018年7月13號,我就發現 postgresql 數據庫的Python API 驅動庫, psycopg2的安裝在 Python 3.7 上就有問題。
3.7 的 pip 執行
pip install psycopg2-binary
安裝就會失敗,提示 Error: pg_config executable not found
而 3.6的pip安裝就沒有問題。
因此,咱們最好等到3.7被廣泛使用了,再轉過去。
如今要轉到Python3.7, 除非 有大家項目特別渴望使用的 Python3.7 裏面的新特性 。 若是是那樣的話,必定要 作一個對老的代碼覆蓋比較充分的測試,防止上線運行的時候出現問題。
而若是目前 項目使用的是 Python 2.7 運行,那 主要是 Python 2 和 Python 3 之間 的 遷移問題了, 語法差別有些大。
若是項目聲明週期比較長的話, 建議仍是 要在合適的時候升級到 Python3。 由於畢竟Python2 在2020年官方就再也不維護,到時候出現什麼安全漏洞之類的問題,就比較麻煩了。 或者是 有好用的第三方庫, 這些庫可能沒有 Python2 的版本,那樣就更麻煩了。
若是決定吧項目從Python2 升級到 Python3, 目前能夠先升級到Python3.6 , 由於業界目前對 3.6 的支持仍是比較廣泛的。 等之後 3.7 支持比較廣泛後,再作升級不遲。
轉自: 白月黑羽在線教程:http://www.python3.vip/doc/blog/python/2018071101/