image

系列文章

全民寫程式 | Python | pyenv-virtualenv 教學(介紹篇)

目錄

 

這是做什麼的?什麼時候用到?

如果您看到 Python pip 卻不知道這是什麼的話,我們先來個簡介吧~

 

許多程式語言都會引用別人的函式庫(library),Python 也不例外,pip 是「Python軟體包索引」(英語:Python Package Index,PyPI),它能夠管理本地 Python 模組(Module),如果在Python 語法中用到 import xxx as xxx 或 import xxx 時,除了內建模組以外,其他引用必需先用 pip 安裝該模組,否則無法使用。有些 import 後找不到模組的錯誤,可能是未安裝模組造成的。

言歸正傳⋯☺️

我們在開發 Python 專案時,會希望使用乾淨的 Python、pip 環境。

或是,如果在 GitHub 下載某個 Python 開源專案,我們也希望給它一個新環境做設定。

不同 Python 版本、不同模組的版本(pip 模組),可能對語法有不同需求,因此正確環境才能讓專案執行不出錯。

利用 pyenv-virtualenv,我們可以建置新環境,無論是 Python、pip 都如新的一般乾淨。

  • 如果您是 Python 初學者,開始要碰 pip 了,推薦您使用它,不怕把 Python 環境弄壞,可以快速重建👍。
  • 如果您需要開發或執行多個 Python 專案,推薦您使用它,不怕環境設定混在一起造成未知錯誤😂。

以下介紹我們和大家說明怎麼安裝 pyenv-virtualenv✨~

 

在 macOS 安裝

 

Homebrew

根據 官網 說明。

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    

 

pyenv

用 brew 安裝吧。

    brew install pyenv
    

 

pyenv-virtualenv

再用 brew 安裝吧。

    brew install pyenv-virtualenv
    

 

zlib

 

上述過程做完後,發現還不能正式安裝 python,提示需要安裝 zlib,乖乖安裝吧。

    brew install zlib

 

在 Windows 安裝

使用 Windows 必須使用 pyenv-win,以下內容為官方 readme 個人理解的大致翻譯。

 

取得 pyenv-win

以下擇一即可。

 

如果您已經擁有 Python

  • Powershell 或 Git Bash:
        pip install pyenv-win --target $HOME\\.pyenv
  • cmd.exe:
        pip install pyenv-win --target %USERPROFILE%\.pyenv

 

自己下載 zip

 
  1. 下載 pyenv-win
  2.  $HOME  %USERPROFILE% 資料夾下如果沒有 .pyenv 資料夾,新建一個。
  3. 解壓縮剛剛下載的檔案並移到目的地。
    • Powershell 或 Git Bash:$HOME/.pyenv/
    • cmd.exe:%USERPROFILE%\.pyenv\
  4. 確認 %USERPROFILE%\.pyenv\pyenv-win 資料夾下有 bin 資料夾。

 

用 Git

  • Powershell 或 Git Bash:
        git clone https://github.com/pyenv-win/pyenv-win.git "$HOME/.pyenv"
  • cmd.exe:
        git clone https://github.com/pyenv-win/pyenv-win.git "%USERPROFILE%\.pyenv"

 

 Chocolatey

    choco install pyenv-win

 

完成安裝

如果使用 Chocolatey 安裝,則可以跳至步驟 3。

 

1. 將 PYENV 和 PYENV_HOME 添加到您的環境變數中。

使用 PowerShell 或 Windows 8 以上的終端機執行。

    [System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")
    [System.Environment]::SetEnvironmentVariable('PYENV_HOME',$env:USERPROFILE + "\.pyenv\pyenv-win\","User")

PYENV_HOME 為了支援 pipenv。

 

2. 將以下路徑添加到您的 USER PATH 變數中,以便使用 pyenv 命令。在 PowerShell 或 Windows 8 以上的終端機執行以下命令:

    [System.Environment]::SetEnvironmentVariable('path', $env:USERPROFILE + "\.pyenv\pyenv-win\bin;" + $env:USERPROFILE + "\.pyenv\pyenv-win\shims;" + [System.Environment]::GetEnvironmentVariable('path', "User"),"User")
    

 

3. 關閉並重新打開您的終端機,執行 pyenv --version,可能有不同反饋。

  • 如果返回 pyenv 的版本號,跳到步驟 4。
  • 如果收到「找不到命令」錯誤,請確認 GUI 設定了正確的環境變數,從這裡更改:我的電腦 → 屬性 → 高級系統設置 → 高級 → 環境變數 → PATH
  • 同樣是收到「找不到命令」錯誤,如果上述沒問題,如果正在使用 Visual Studio Code 或其他包含終端機的 IDE,請重啟它們後重試。

 

4. 在主目錄執行:pyenv rehash

5. 輸入幾個 pyenv 指令看看有沒有問題吧!

 

錯誤修正

彩世自己在安裝過程,如有報錯並修正的話,附上修正方法,macOS 適用

 

1. BUILD FAILED (OS X 11.0.1 using python-build 20180424)

終端機輸入

    export LDFLAGS="-L/usr/local/opt/zlib/lib" export CPPFLAGS="-I/usr/local/opt/zlib/include"

來自:BUILD FAILED (OS X 11.0.1 using python-build 20180424)

 

 

2. pyenv: shell integration not enabled. Run `pyenv init’ for instructions.

pyenv shell test 後,遇到的錯誤 pyenv: shell integration not enabled. Run `pyenv init' for instructions.,解決辦法。

您可以輸入 pyenv init 看看他的說明,簡單來說…

 

2.1. 如果您使用 zsh

 ~/.zshrc 檔案中加一行 eval "$(pyenv init -)"

 

 

2.2. 如果您使用 bash

 ~/.bash_profile 檔案中加一行 eval "$(pyenv init -)"

 

參考資料

arrow
arrow

    彩世 發表在 痞客邦 留言(2) 人氣()