記錄pip和pipenv使用重點。
pip篇
配置文件換源
windows:C:\Users\Administrator\pip\pip.ini
mac:~/pip/pip.conf
[global] index-url = http://mirrors.aliyun.com/pypi/simple trusted-host = mirrors.aliyun.com disable-pip-version-check = true timeout = 300 [list] format = columns
指令換源
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
重點指令
# 查看包的版本,確定后在==后面輸入版本號即可 pip install xxx== # 批量卸載,rr.txt放需要卸載的包名 pip uninstall -r rr.txt
# pip search墳頭草已經一米多高了,用不了了
Pipenv簡記
說明
pipenv是python最好的包管理器,用來控制安裝的包,等於pip + virtualenv,指令與pip類似,建議盡量使用pipenv來代替pip。
配置
mac下:在~/.bash_profile里配置?
# 讓pipenv環境在項目目錄 export PIPENV_VENV_IN_PROJECT=1 # 設置字符集,不然在輸入pipenv shell時會遇到Warning: the environment variable LANG is not set! export LANG=zh_CN.UTF-8
windows下:
系統環境變量中添加一個變量PIPENV_VENV_IN_PROJECT,值設置為true
換源
提高安裝速度換源,更換pipfile里的源為:"https://pypi.doubanio.com/simple"
pycharm解釋器配置
在pycharm里選擇解釋器時選virtualenv-exist,它會自動識別出來。
基本指令
# 安裝 pip install pipenv
# 進入虛擬環境 pipenv shell # 退出虛擬環境 exit # 將所有依賴庫導出到 requirements.txt 文件 pip freeze > requirements.txt # 配置軟連接(可不用) ln -s /Users/edz/Library/Python/3.8/bin/pipenv /usr/local/bin # 更新 pip install --user --upgrade pipenv # 安裝環境依賴(在有pipfile的項目根目錄下執行),如果版本不一致安裝時會報錯,后面加上--three就行 pipenv install <--three> # 只安裝dev-packages部分的包(在有pipfile的項目根目錄下執行) pipenv install -d # 安裝環境依賴(在有requirement.txt的項目根目錄下執行) pipenv install -r requirements.txt # 安裝/卸載包 pipenv install/uninstall package # 查看已安裝的包 pipenv graph # 查看當前虛擬環境位置 pipenv --venv # 查看項目根目錄 pipenv --where # 查看需要更新的包 pipenv update --outdated # 更新所有包 pipenv update # 更新指定包 pipenv update package # 指定Python版本 pipenv --python 3.8 # 在虛擬環境中啟動python pipenv run python --version # 將Pipfile和Pipfile.lock文件里面的包導出 pipenv lock -r # 只導出開發用的包 pipenv lock -r --dev
其他
何時用brew何時用pipenv?
在你不確定一個包/庫/插件的使用范圍時,盡量給予它低等級的權限,這一條希望成為我們的宗旨。比如你喜歡數據分析,那么可能會用到jupyter,jupyter既可以用brew裝又可以用pipenv裝,究竟用哪個裝更好一點?“實踐出真知”,最好是兩種方法都對比一下,看看哪種更干凈,依賴更少即可,為了節省時間,下面直接給出答案。所以,若你僅在某個場景使用那么請使用pipenv裝;若不是那么用brew裝。(brew裝的依賴更多更不好打理,本着優雅簡約的原則推薦pipenv裝)
何時用pip何時用pipenv?
用於項目單獨管理用pipenv,為了方便直接使用庫內置指令用pip。
如我希望直接在終端jupyter notebook啟動jupyter,那么首先用pip裝的,后來發現jupyter的依賴包太多導致pip環境很亂,感覺很惡心改用pipenv。
再如web自動化中用pipenv裝了一個playwright,在終端啟動時老是提示我找不到指令,因為需要先進入所在的虛擬環境比較麻煩,后來改用pip裝playwright。
個人建議,沒有特殊情況,全部用pipenv。
安裝了pipenv仍然提示: 'pipenv' 不是內部或外部命令,也不是可運行的程序 或批處理文件。
這種情況發生在windows電腦的pycharm里安裝時出現,解決方法是:在windows自帶的終端中卸載掉pipenv,使用pip3重新安裝。