[英]Convert python 2 code to 3 in PyCharm
我在 python 2 代碼中有一個大型 ML 項目,我剛剛開始使用 PyCharm 作為 IDE。我目前使用的是 WinPython 3.4,我最好在 python 3 中做所有事情,而不是繼續使用遺留 2。當我克隆來自 git 的項目出現了 pycharm 中的一個彈出窗口,類似於將代碼從 2 轉換為 3,但我並沒有真正考慮它並退出了它。 我該如何轉換它?
我在Pycharm IDE 中找到了一種使用 2to3 工具將文件從 v2 轉換為 v3 的方法。
我在windows環境下申請了pycharm comunity edition v 2016.2.3。
2to3 myfile.py -w
該工具會修改文件的代碼,並且您的 IDE 會通過更改反映出來。
要修改文件夾中的所有文件,請鍵入命令
2to3 . -w
選項-w
實際寫入更改。 有關更多詳細信息,請寫:
2to3 -h
轉到命令行中存在 python2script.py 的文件夾,
然后執行命令:
python C:/python/Tools/scripts/2to3.py -w python2script.py
您可以看到您的 python2scipt.py 已更新。
為了將您的 python 腳本從 version-2 轉換為 version-3,您可以簡單地使用 2to3 實用程序。
在 linux 終端上 -
$ 2to3 my_file.py # shows output only on terminal
或
$ 2to3 -w my_file.py # overwrites the file with python-3 code
其中 my_file.py 是您要轉換的文件。
python 2.XX轉python 3.XX的兩種方法
我開發了一個 web 應用程序來將 python 2.xx 代碼轉換為 python 3.xx 這里是自動 Python 2 到 3 轉換器。
注意:這個網絡應用程序是免費的並且使用這個2to3
python 庫。
安裝 2to3 庫
pip install 2to3
轉換 myfile.py
2to3 myfile.py
這建議創建一個包含 Python 3 代碼的新文件。
如果你想覆蓋 myfile.py 使用 -w 參數,如 2to3 myfile.py -w。 閱讀文檔以獲取更多參數。
Python 中包含一個腳本,通常位於[Python Root]/Tools/Scripts/2to3.py
。 您可以在 python 文件(或 python 文件目錄)上運行該腳本,它將處理大量轉換,至少對於標准庫中的更改。
如果您的項目使用其他 3rd 方庫,它會變得更復雜一些。 在 2 到 3 轉換期間更改的 API 可能會發生變化,而2to3.py
腳本將不知道這些 API 更改。 最好的辦法是運行轉換腳本,然后手動進行所需的任何其他更改。
在做任何事情之前,我會先保存您的 Python 2 文件的備份副本。
然后,您可以嘗試使用“2to3”自動 Python 2 到 3 代碼轉換工具來轉換代碼,該工具通過標准庫內置於 Python 中。 可以在此處找到有關使用的詳細信息: https : //docs.python.org/2/library/2to3.html#
您還可以選擇兩種工具來自動移植您的代碼:現代化和未來化。 在下面查看它們。
現代化 --> https://python-modernize.readthedocs.io/en/latest/
未來化 --> http://python-future.org/automatic_conversion.html
就 Pycharm 而言,我沒有看到/不知道 IDE 中有任何將代碼從 Python 2 轉換為 Python 3 的專用工具。我會堅持使用上面的 3 個工具。
祝你好運!
您可以使用這個免費的在線工具快速轉換幾個文件
如果你也想在 PyCharm IDE 內部使用它,你可以將它添加為外部工具:
File
-> Settings
-> Tools
-> External Tools
,然后按+
按鈕。
一個新的 window 打開,為您的工具命名(例如2to3)和描述。
在Program
中添加腳本的路徑,如果你使用Linux,它應該位於/usr/bin/2to3-2.7
在Arguments
行中,如果您希望您的工具適用於當前打開的文件,請添加$FileName$
,或者添加.
在當前目錄上, -w
應用其他回復中看到的更改。
在Working directory
行中添加$FileDir$
。
按確定並在打開的文件中,go 到Tools
-> External Tools
-> 2to3
運行腳本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.