python虛擬環(huán)境配置

1、之前寫過(guò)一篇文章,介紹了pyenv的虛擬環(huán)境設(shè)置,比較好用,換新電腦后,pyenv install 2.7.15,無(wú)論怎么樣都出錯(cuò),放棄它了。
2、后來(lái)有個(gè)測(cè)開(kāi)給我介紹了一個(gè)pipenv,搜了一下,也挺好用。把安裝過(guò)程寫一下
首先pip install --user pipenv(我用的是brew install --user pipenv)
pip安裝在
/Users/yourname/Library/Python/2.7/lib/python/site-packages/pipenv
brew安裝在/usr/local/Cellar/pipenv

其實(shí),到這里,已經(jīng)安裝好了。
其實(shí)他的命令很簡(jiǎn)單
具體可以查看這里.
大概說(shuō)一下最核心的幾個(gè)命令
pipenv install 直接安裝pipfile和pipfile.lock兩個(gè)文件里面的內(nèi)容,創(chuàng)建的python版本也是pipfile里的版本。
首先它會(huì)校驗(yàn) pipfile 和 pipfile.lock 是不是一致,如果一致就直接裝 lock 里面的,如果不一致就先重新生成一份 lock 文件。
pipenv shell 進(jìn)入到虛擬python環(huán)境 exit 或者ctrl+d退出

cd到你的項(xiàng)目文件夾
然后pipenv --python 3.7 這里根據(jù)你的python版本換成2.7
至此,已經(jīng)建立好了一個(gè)pipenv的python環(huán)境。它的路徑是/Users/yourname/.local/share/virtualenvs/Invest_App_UITest-lKTIJBzo

然后,我用pycharm選擇pipenv的虛擬環(huán)境。官網(wǎng)有給出非常詳細(xì)的步驟 可以只看這里

image.png

實(shí)際操作截圖


image.png

image.png

這里有幾點(diǎn)需要注意:
1、pipenv excutable里面填/Users/name/.local/share/virtualenvs/Invest_App_UITest-lKTIJBzo/bin/python2.7
2、install packages from pipfile 可以不勾選

這樣應(yīng)該會(huì)創(chuàng)建一個(gè)空的pipenv環(huán)境
然后
pipenv install -r requirements.txt
樣我們可以重用之前的requirement.txt 文件來(lái)構(gòu)建我們新的開(kāi)發(fā)環(huán)境,可以把我們的項(xiàng)目順利的遷到pipenv。

如果出錯(cuò),可以把安裝出錯(cuò)的庫(kù)單獨(dú)找出來(lái)。
然后切到虛擬環(huán)境:pipenv shell
進(jìn)入到虛擬環(huán)境后,再安裝出錯(cuò)的庫(kù)。

直接用 pipenv install 會(huì)報(bào)錯(cuò), m2crypto 安裝的時(shí)候找不到 openssl。
用 pipenv shell 先切換到它的虛擬環(huán)境里面,再用下面這條命令就可以把 m2crypto 裝上。
LDFLAGS="-L$(brew --prefix openssl)/lib" CFLAGS="-I$(brew --prefix openssl)/include" SWIG_FEATURES="-I$(brew --prefix openssl)/include" pip install m2crypto

然后查看依賴關(guān)系:pipenv graph
如果看到還有?的庫(kù),繼續(xù)安裝。

這樣就可以使用pipenv虛擬環(huán)境了。
刪除虛擬環(huán)境:
pipenv --rm

進(jìn)入虛擬環(huán)境
pipenv shell
退出虛擬環(huán)境
exit or Ctrl+D

安裝好虛擬環(huán)境,也能正常運(yùn)行,但是發(fā)現(xiàn)不能自動(dòng)切換python虛擬環(huán)境。于是找
發(fā)現(xiàn)https://github.com/pypa/pipenv/wiki/Run-pipenv-shell-automatically
這里有介紹,如何自動(dòng)進(jìn)入到python虛擬環(huán)境的文件夾時(shí),自動(dòng)切換到虛擬環(huán)境(也就是執(zhí)行pipenv shell)
具體做法:

function auto_pipenv_shell {
    if [ ! -n "${PIPENV_ACTIVE+1}" ]; then
        if [ -f "Pipfile" ] ; then
            pipenv shell
        fi
    fi
}

function cd {
    builtin cd "$@"
    auto_pipenv_shell
}

auto_pipenv_shell

把這段內(nèi)容加到~/.zhsrc 然后加完之后,source ~/.zhsrc 退出終端,cd到配置了虛擬環(huán)境的文件夾,它會(huì)自動(dòng)切到python虛擬環(huán)境,但是返回上一層后,發(fā)現(xiàn)他沒(méi)有自動(dòng)退出。感覺(jué)不是很好用。

繼續(xù)找:autoenv
brew install autoenv # 安裝 autoenv
cd到你的配置了python虛擬環(huán)境的文件夾
執(zhí)行echo "pipenv shell" > .env 當(dāng)然你也可以通過(guò)vi操作

# bash 的話,執(zhí)行這一條指令
echo "source `which activate.sh`" >> ~/.bashrc
# zsh 的話,執(zhí)行這一條指令
echo "source `/usr/local/Cellar/autoenv/0.2.1/activate.sh`" >> ~/.zshrc
或者直接在~/.zshrc加source /usr/local/Cellar/autoenv/0.2.1/activate.sh

source ~/.zshrc 退出終端,然后cd到目標(biāo)文件夾。如果是第一次,系統(tǒng)會(huì)提示你確認(rèn)是否以后都自動(dòng)激活,輸入 y ,然后回車確認(rèn)即可。
但是發(fā)現(xiàn),這里cd到其他文件夾,也還是停留在python虛擬環(huán)境,沒(méi)有自動(dòng)退出,方案也不夠完美。
這里主要參考[Python]使用pipenv管理python虛擬環(huán)境懶人神器 autoenv

后來(lái)有人介紹一個(gè)據(jù)說(shuō),可以退出文件夾后,自動(dòng)關(guān)閉python虛擬環(huán)境的。
Autoswitch Python Virtualenv
我的是oh-my-zsh
所以,我直接安裝文檔安裝:
git clone "https://github.com/MichaelAquilina/zsh-autoswitch-virtualenv.git" "$ZSH_CUSTOM/plugins/autoswitch_virtualenv"
把代碼放到了/Users/name/.oh-my-zsh/custom/plugins/autoswitch_virtualenv
然后在
~/.zshrc加

image.png

plugins=(autoswitch_virtualenv $plugins)

在~/.bash_profile加


image.png

export AUTOSWITCH_VIRTUAL_ENV_DIR=$HOME/.local/share/virtualenvs

然后source ~/.bash_profile
source ~/.zshrc
發(fā)現(xiàn)有提示


image.png

輸入mkenv后,發(fā)現(xiàn)自動(dòng)安裝了python 3.7
而且提示要安裝requirement.txt
感覺(jué)和pipenv是不一樣的東西,是一個(gè)獨(dú)立的配置虛擬環(huán)境的工具。沒(méi)有和pipenv搭配使用,但是我的使用場(chǎng)景大部分是在pycharm,pycharm支持pipenv,所以,還是以pipenv為主,所以這個(gè)工具也放棄。
但是它有一個(gè)好處,cd到其他文件夾時(shí),自動(dòng)關(guān)閉python虛擬環(huán)境,和pyenv一樣,很好用。
以上說(shuō)的都作廢,后來(lái)重啟終端,可以識(shí)別pipenv環(huán)境。
所以我又恢復(fù),但是恢復(fù)后,發(fā)現(xiàn)還是不行,一直報(bào)下面截圖的錯(cuò)。

image.png

找了好久原因,終于知道了。參考這里
image.png

我把source ~/.bash_profile發(fā)到plugins前面去了


image.png

解決問(wèn)題。

但是依然提示

提示

暫時(shí)還沒(méi)找到解決方法。先將就用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 其他介紹 Python庫(kù) mac 裝python庫(kù)裝pip。然后用pip安裝python庫(kù)。系統(tǒng)自帶easy_in...
    西電大俠閱讀 1,210評(píng)論 0 1
  • 虛擬環(huán)境 虛擬環(huán)境是一個(gè)將不同項(xiàng)目所需求的依賴分別放在獨(dú)立的地方的一個(gè)工具,它給這些工程創(chuàng)建虛擬的Python環(huán)境...
    洛克黃瓜閱讀 1,579評(píng)論 0 0
  • 一、為什么安裝python虛擬環(huán)境參考此文內(nèi)容:virtualenv介紹及基本使用為了更詳細(xì)多種使用場(chǎng)景說(shuō)明,下面...
    ericblue閱讀 1,145評(píng)論 0 0
  • 確保你已經(jīng)有了 python 和 pip在您進(jìn)一步之前,請(qǐng)確保您有 Python,并且可從您的命令行中獲得。 你可...
    yiangdea閱讀 1,327評(píng)論 0 1
  • python虛擬環(huán)境配置 Python 2和Python 3之間存在著較大的差異,并且,由于各種原因?qū)е铝薖yth...
    嘿嘿海海閱讀 544評(píng)論 0 0

友情鏈接更多精彩內(nèi)容