搭建Python開發環境(Mac)


准備

Python官網:

https://www.python.org/

Python官方文檔:

https://docs.python.org/

環境搭建

簡介

pipenvPython官方推薦的包管理工具。可以說,它集成了virtualenv, pippyenv三者的功能。其目的旨在集合了所有的包管理工具的長處,如: npm, yarn, composer等的優點。

它能夠自動為項目創建和管理虛擬環境,從Pipfile文件添加或刪除安裝的包,同時生成Pipfile.lock來鎖定安裝包的版本和依賴信息,避免構建錯誤。

pipenv主要解決了如下問題:

  • 不用再單獨使用pipvirtualenv, 現在它們合並在一起了
  • 不用再維護requirements.txt, 使用PipfilePipfile.lock來代替
  • 可以使用多個python版本(python2python3)
  • 在安裝了pyenv的條件下,可以自動安裝需要的Python版本

准備

1、pyenv是什么?

pyenv是Python版本管理工具,利用它我們可以在同一台電腦上安裝多個版本的Python,這個過程非常簡單。

2、 pipenv是什么?

pipenv是Python官方推薦的包管理工具,用來管理安裝包的。類似於npm包。

3、利用pipenv和pyenv管理多個相互獨立的Python虛擬開發環境。

1. 安裝pyenv—用來安裝多個Python版本

1.1、安裝或升級pyenv
首先安裝pyenv,如果你是Mac電腦,那么推薦使用Homebrew來安裝。

brew update
brew install pyenv

1.2、用pyenv安裝Python
安裝完pyenv,安裝Python就簡單了。我電腦上系統自帶的是Python2.7.10,我准備再安裝一個Python2.7.14和Python3.6.4,以后開發時候就用自己安裝的Python2.7.14或者Python3.6.4了。

pyenv install 3.6.4 2.7.24 
pyenv rehash

執行命令pyenv versions,如果輸出結果如下,那么說明我們已經安裝好了Python2.7.14和Python3.6.4:

pyenv versions
  system
* 2.7.14 
* 3.6.4 

現在我們就可使用Python2.7.14和Python3.6.4了。執行這個下面python2、python3、python指令可以進入到不同版本的Python環境。

pyenv global屬於全局切換,pyenv local屬於局部切換,局部切換只在所在切換時的目錄中生效。可以通過如下命令來切換版本:

$: pyenv global 3.6.4
$: pyenv versions
  system
  2.7.14
* 3.6.4 (set by /Users/chunming.liu/.pyenv/version)
pyenv local 2.7.14

重要事情說三遍

不過有了pipenv,我們不用手動切換Python版本了,也就是安裝完了pyenv之后不用再去安裝具體的Python版本了。

注意:
add --enable-shared for pyenv python installations
https://github.com/pyenv/pyenv/wiki#how-to-build-cpython-with---enable-shared

2. 安裝pyenv---用來安裝相互獨立的虛擬環境

2.1、安裝pipenv
如果你是Mac電腦,那么推薦使用Homebrew來安裝。

brew install pipenv

執行pipenv,可以查看pipenv的幫助信息。

2.2、為項目建立虛擬環境
默認地,虛擬環境會創建在~/.local/share/virtualenvs目錄里面。
如果我們希望在每個項目的根目錄下保存虛擬環境目錄(.venv),需要在 .bashrc 或 .bash_profile 中配置如下:

export PIPENV_VENV_IN_PROJECT=1

要想使配置生效,執行下source ~/.bashrc或者source ~/.bash_profile。

接下來我們為項目創建虛擬環境。

mkdir pipenv_demo
cd pipenv_demo

pipenv --three # 初始化一個python3虛擬環境
pipenv --two # 初始化一個python3虛擬環境

創建完虛擬環境之后,在pipenv_demo目錄下將會看到一個.venv的目錄,這個目錄就是pipenv_demo項目的虛擬環境。
使用具體的python版本創建虛擬環境,可以執行:

pipenv --python 2.7.14

指定版本
pyenv versions
* system (set by /Users/lucas/.pyenv/version)
  3.8.1
$ pipenv --rm
$ pipenv install
$ Creating a virtualenv for this project…3.8.1

2.3、為項目安裝第三方依賴包
為項目安裝自己的依賴包到虛擬環境中,使每個項目擁有相互獨立的第三方包,是非常不錯的Python的開發實踐。安裝依賴包到虛擬環境中:

pipenv install flask
pipenv install pytest --dev   # 用於區分需要部署到線上的開發包、只需要在測試環境中執行的包

執行完上面的命令后,檢查一下是否安裝成功:

$ pipenv graph
Flask==0.12.2
  - click [required: >=2.0, installed: 6.7]
  - itsdangerous [required: >=0.21, installed: 0.24]
  - Jinja2 [required: >=2.4, installed: 2.10]
    - MarkupSafe [required: >=0.23, installed: 1.0]
  - Werkzeug [required: >=0.7, installed: 0.14.1]
pytest==3.4.2
  - attrs [required: >=17.2.0, installed: 17.4.0]
  - pluggy [required: >=0.5,<0.7, installed: 0.6.0]
  - py [required: >=1.5.0, installed: 1.5.2]
  - setuptools [required: Any, installed: 38.6.0]
  - six [required: >=1.10.0, installed: 1.11.0]

2.4 更新 pypi源來提高依賴庫安裝的速度
在使用pipenv的時候,常常會在安裝的時候,一直卡在了 Locking 這里,通過加上 -v 參數,可以看到安裝過程中的步驟信息,卡在了下載那里,這時應該可以意識到是因為網絡的原因,pipenv創建的 Pipfile 中默認的pypi源是python官方的 https://pypi.python.org/simple。我們國內用戶訪問下載的時候會很慢。

所以,我一般會在創建好Pipfile以后,修改到文件中 source 塊下的 url 字段,設置為國內的 pypi 源就好了,我推薦的是清華的pypi源或者阿里源,具體設置如下:

[[source]]
 url = "https://pypi.tuna.tsinghua.edu.cn/simple"
 verify_ssl = true
 name = "pypi"

3、使用虛擬環境進行開發
虛擬環境創建好了之后,就可以在里面進行開發了。
如果在命令行下開發,則在項目目錄下執行pipenv shell,就進入到了虛擬環境中,在這個環境中,就已經包含安裝過的所有第三方依賴包了,接下來就可以利用這些第三方包進行開發工作了。
如果是用Pycharm進行開發,就更簡單了,直接用Pycharm打開項目目錄就好了,打開后可以從Pycharm中的左側導航欄里面看到External Libraries里面顯示的是虛擬環境中的Python解釋器。

4、刪除安裝的第三方包
如果是要刪除虛擬環境中的第三方包,執行

pipenv uninstall flask

5、安裝項目所有的依賴
用git管理項目時候,要把Pipfile和Pipfile.lock加入版本跟蹤。這樣clone了這個項目的同學,只需要執行

pipenv install

就可以安裝所有的Pipfile中 [packages]部分的包了,並且自動為項目在自己電腦上創建了虛擬環境。
如果是想要安裝[dev-packages]部分的包,需要執行:

pipenv install -d

上面的方法都是安裝Pipfile中列出來的第三方包的最新版本,如果是想安裝Pipfile.lock中固定版本的第三方依賴包,需要執行:

pipenv install --ignore-pipfile

如果你的項目之前使用requirements.txt來管理依賴的,那么使用pipenv安裝所有依賴可以采用類似pip的方法:

pipenv install -r path/to/requirements.txt

6、團隊實踐建議

建議團隊內開發人員,在自己電腦上都安裝pyenv和pipenv。Pipfile和Pipfile.lock加入版本跟蹤,.venv不要加入版本管理。為自己的每一個項目建立獨立的虛擬環境。

7、擴展命令(了解下就好)

  • 查看虛擬環境python解釋器所在位置
pipenv --py
  • 查看虛擬環境所在位置
pipenv --venv
  • 使用更底層的命令pip freeze
pipenv run pip freeze
  • 只在安裝開發階段使用的軟件包(和npm類似)
pipenv install pytest --dev
  • 安裝Pipfile.lock的所有包(完整移植開發環境)
pipenv sync

參考鏈接:https://blog.csdn.net/liuchunming033/article/details/79582617
https://blog.windrunner.me/python/pip.html#pip-與-pipfile


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM