banner
肥皂的小屋

肥皂的小屋

github
steam
bilibili
douban
tg_channel

Python入門之環境配置篇 - Anaconda及Pycharm及格式化工具Black一把梭

Anaconda#

Anaconda 是啥?#

一個優秀的 Python 集成開發環境

為啥要用它 (優點)#

  • 解決繁瑣的環境與包的問題:lxml,PIL 等複雜難裝的包
  • 方便地配置多個環境:可以實現 Python2.x 系列和 3.x 系列的自由轉換
  • 內置很多數據分析實用工具:包含了多個數據科學相關的開源包(如 Pandas,Scipy 等),在數據可視化、機器學習、深度學習等多方面都有涉及。
  • 內置了 Jupyter NoteBook 工具:開發,調試,還是記錄學習筆記,都可以在上面完成

下載、安裝與配置#

  • 下載:建議使用清華鏡像下載:點我去下載,注意排序時間是亂序,點擊時間這一欄的 Date 修改排序方式:

image

你也可以直接在清華大學鏡像站首頁的常用發行版 iso 和應用工具安裝包下載界面

image

選擇應用軟件 ->conda,下載最新的版本:

image

  • 安裝:默認安裝在C:\Users\你的用戶名\Anaconda3,建議改為C:\Anaconda

這裡記住兩個都要勾選上:

image

  • 配置:

Anaconda 換源#

(19-06-16 更新) 國內的清華源和中科大源都於 2019 年 05 月因版權問題停止服務,請使用梯子


(19-06-28 更新) 清華大學鏡像獲得授權,於2019-06-27重新恢復:

經與 Anaconda, Inc. 的溝通,我們獲得了鏡像的授權,將於近期恢復 Anaconda 相關服務,感謝各位用戶的理解和支持。

根據我們的理解,Anaconda, Inc. 方面 有意願 在鏡像站同意提供流量信息的前提下將鏡像權限開放給教育科研機構。但請有意願架設 Anaconda 鏡像站(包括成為 TUNA 下游)的個人及團體注意,根據 Anaconda 軟件源上的說明,Anaconda 和 Miniconda 是 Anaconda, Inc. 的商標,任何未經授權的公開鏡像都是不允許的。請嚴格遵循 Anaconda, Inc. 官方正式公布的規定進行鏡像,TUNA 不對因此產生的法律後果負責。

感謝您的理解與支持!

於是重新貼上Anaconda換源教程:

conda安裝好之後,默認的鏡像是官方的,由於官網的鏡像在境外,訪問太慢或者不能訪問,為了能夠加快訪問的速度,這裡選擇了清華的的鏡像。在命令行中運行 (設置清華的鏡像):

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --set show_channel_urls yes
  • 二. CondaHTTPError 問題 (沒出現就不用看了)

.condarc(conda 配置文件)以點開頭,一般表示 conda 應用程序的配置文件,是一種可選的(optional)運行期配置文件。

其默認情況下是不存在的,但當用戶第一次運行 conda config 命令時,將會在用戶的家目錄創建該文件
windows:C:\\users\\username\\
linux:/home/username/

在用戶 home 目錄下,找到 .condarc 文件,刪掉就好

想要刪除清華源把 add 改成 remove 就行

常用使用方法:#

conda list:查看安裝的包
conda install Package-Names:安裝某個包,與pip使用方法一致
conda --version:查看Anaconda版本
conda info -e:查看當前創建的環境
conda update --prefix C:\Anaconda anaconda(這裡為安裝目錄):對anaconda進行更新
如果懶得去查安裝目錄就直接輸入conda update,它會提示你補齊後的語句,直接複製執行就行
conda update --all:對包進行更新
升級pip(升級後可使用pip3):python -m pip install --upgrade pip

Py3.6 版本添加 Py2.7 環境#

  • 安裝完 Anaconda 後,會有一個叫做 Anaconda Navigator 的應用,可以在 windows 菜單中搜索:
    image

  • 打開並運行它,選中 Enviroments 這個選項:
    image

  • 可以看到默認只有一個 ROOT 環境,這點我們也可以在 cmd 中輸入 conda info -e 命令來查看

  • 接下來就是配置我們的 Python2 環境,點擊 Create:
    image

  • 點擊 Create,等待一會環境就創建完了:
    image

一般來說,Python3 系列才是未來的主宰,那麼我們創建 Python2.7 只是為了一些實例的比較

所以在這裡不需要去 “添加系統變量以及修改 exe 文件名使得可以在 cmd 窗口中使用 Python2 和 Python3 命令進入對應的環境” 這樣的操作,Anaconda 為我們提供了便捷的方案:

我們只需要在 cmd 中輸入 activate Python2.7 (這個名字就是上面創建環境時的名字) 即可激活 Python2.7 環境

在 cmd 中輸入 deactivate 即可取消激活 Python2.7 環境,回到 Python3.6 環境

下面是示例:
image

Pycharm#

Tips:這篇文章由於是較早時間創建,後期soapffz才意識到 Pycharm 實在是太強大了,但同時帶來的問題就是:

  • 軟件占用內存較大 (我的電腦默認分配 725M 都會提示內存小會影響運行建議我改為 1125M)
  • 初始化時占用 CPU 過高 (開啟時 CPU 占用率急劇升高又落下,開省電模式啟動也能跑到 50%)
  • 每次啟動會加載之前的虛擬環境,基本要耗時 1 分鐘。

所以,對於新手來說並不是太友好 (超高配機請忽略),只適合經常編寫大型工程的專業人員,後期我會出一篇 VSC 作為編寫 Python 代碼主力工具的文章

VSC 傳送門:

Pycharm 下載地址:點我去下載

激活#

配置#

  • 設置主題字體
    File -> Settings -> Editor -> Color Scheme -> Console Font,注意記得先備份再修改
    image

  • 設置編輯器字體
    File -> Settings -> Editor -> Font 中設置,跟上面差不多:
    image

  • 配置編譯器及格式化插件

一般來說,如果你先裝好 Anaconda 再打開的 Pycharm,則會自動識別編譯器 (Anaconda 添加到 PATH 環境變量的前提下),如下圖:

image

如果未配置過解釋器時,在編輯代碼時,在代碼上方便會提示你No Python interpreter configured for the project

image

點擊進去就能到這個配置處,然後選擇裝好的 Python 解釋器,記住勾選下面的兩個選項,意義分別是 “繼承包” 和 “對所有的項目通用 (無需再次配置)” 即可

image

等待一會就會自己創建好虛擬環境並讀取安裝好的包,下次重新打開項目時便會自定讀取。

PS:這裡你看到下面有個 Existing environment,字面意思是使用已經存在的環境,或許你會和我一樣想到在第一次創建完環境之後,重啟然後選擇第一次創建的環境不就行了嗎?I tried,但是還是回去掃描環境以及包,而且在解釋器中多出來一個 (venv)(1),貌似是不該這樣做的,我也沒搞懂這個 Existing environment 實用的環境。

在 settings -> Project Interpreter 右上角的下拉小三角中會顯示當前電腦中的所有配置了環境變量的 Python 版本,可以自由切換

格式化工具 Black (Python3.6 以上)#

介紹部分#

引言:

代碼可讀性是評判代碼質量的標準之一,有一個衡量代碼質量的標準是 Martin 提出的 “WFT” 定律,即每分鐘爆出 “WTF” 的次數。你在讀別人代碼或者做 Code Review 的時候有沒有 “WTF” 衝動呢?為了幫助開發者統一代碼風格,Python 社區提出了 PEP8 代碼編碼風格,它並沒有強制要求大家必須遵循,Python 官方同時推出了一個檢查代碼風格是否符合 PEP8 的工具,名字也叫 pep8,後來被重命名為 pycodestyle。

看如下代碼:

import time, datetime

class ListNode:
    def __init__(self, val):
        self.val = val
        self.next = None

    # in python next is a reversed word
    def reverse(self, head):
        prev = None
        while head:
            temp = head.next
            head.next = prev
            prev = head
            head = temp

        a = [
            [
                1,
                u'hello world',
                0
            ],
            [
                2,
                "hello python",
                0
            ],
        ]

這是一個不符合 PEP8 的代碼段,用 pycodestyle 可檢測有哪些地方不符合 PEP8 風格

$ pycodestyle link.py
link.py:1: [E401] multiple imports on one line
link.py:3: [E302] expected 2 blank lines, found 1

pycodestyle 提示我們有兩處地方不符合規範,第一个是單行有多個 import,第二個是類與模塊之間需要空兩行,這只是一个簡單代碼示例,真正的業務代碼可能有上百行甚至幾百行,如果我們要根據 PEP8 規範逐個進行修改建議會非常耗時,而我們的開發過程中,如果時刻關注每一行代碼是否完全遵循 PEP8,將影響開發效率。

而有這麼一款工具 Black,號稱不妥協的代碼格式化工具,為什麼叫不妥協呢?因為它檢測到不符合規範的代碼風格直接就幫你全部格式化好,根本不需要你確定,直接替你做好決定。它也是 requests 作者最喜歡的工具之一

使用非常簡單,安裝成功後,和其他系統命令一樣使用,只需在 black 命令後面指定需要格式化的文件或者目錄就 ok:black link.py

image

這是一款小而美的工具,它並不是完全按照 PEP8 規範來格式化,比如默認每行代碼的字符數是 88 個,當然你可以通過參數 -l 自定義長度,能一行顯示完成的代碼會放在一行,比如有多個元素的列表

# in:

l = [1,
     2,
     3,
]

# out:

l = [1, 2, 3]

後者把多個元素放在一行,顯然更易讀,而且代碼更緊湊(如果你的工資是按照代碼行數來算的話,不建議這麼做),Black 是 PEP8 的嚴格子集。我的最佳實踐方式就是使用 PyCharm 自帶的格式化工具配合 Black 使用。因為 Black 也支持集成到 Pycharm 中。

如何集成到 Pycharm#

  1. 安裝 black (這裡 conda 不行就用 pip):pip install black

  2. 找到 black 的安裝路徑:where black(windows)/which black(linux/mac):

    image

  3. 添加擴展工具,打開 Settings -> Tools->External Tools ,添加一個新的擴展工具,Program 填 black 的安裝路徑,Arguments 填 $FilePath$

    image

  4. 選擇 Tools-> External Tools-> Black 即可對當前打開的文件及代碼格式化,當然,你還可以為其指定一個快捷鍵,使操作起來更方便。

    image

更多信息可參考文檔:github 傳送門

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。