選擇 Python3.6 仍是 Python 3.7

轉自: 白月黑羽在線教程:http://www.python3.vip/doc/blog/python/home/html

選擇 Python3.6 仍是 Python 3.7

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 裏面的新特性 。 若是是那樣的話,必定要 作一個對老的代碼覆蓋比較充分的測試,防止上線運行的時候出現問題。

 

用Python2.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/

相關文章
相關標籤/搜索