最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mac中pyenv的安裝與使用教程

 更新時間:2022年02月14日 15:38:10   作者:LinXunFeng  
pyenv支持linux下python多版本的共存和版本之間切換,非常方便,下面這篇文章主要給大家介紹了關(guān)于Mac中pyenv安裝與使用的相關(guān)資料,需要的朋友可以參考下

前言

pyenv 可在不同 python 版本之間輕松切換,實現(xiàn) python 環(huán)境隔離,且支持自動激活和退出虛擬環(huán)境

一、pyenv

1、安裝

方式一:Git Clone

git clone git://github.com/pyenv/pyenv.git ~/.pyenv

bash

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/shims:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
exec $SHELL -l

zsh

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/shims:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
exec $SHELL -l

方式二:Homebrew

安裝

brew install pyenv

根據(jù)自身環(huán)境,將下方內(nèi)容加到對應(yīng)文件中: .bashrc / .zshrc

export PYENV_ROOT=/usr/local/var/pyenv
export PATH="$PYENV_ROOT/bin:$PATH"
export PATH="$PYENV_ROOT/shims:$PATH"
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi

2、驗證

驗證安裝是否成功:

pyenv

3、使用

基本使用

命令描述
pyenv --version查看 pyenv 的版本
pyenv versions羅列當前已安裝的所有 python 環(huán)境,如果是當前正在使用的環(huán)境,則前面會有個 *
pyenv help查看幫助
pyenv init如果輸入 pyenv 之后使用 tab 不補全,可以使用該命令進行初始即可使用補全命令

安裝環(huán)境

命令描述
pyenv install -l顯示可以安裝的版本列表
pyenv install 版本號安裝指定版本的 python
pyenv rehash更新本地數(shù)據(jù)庫,安裝指定版本的 python 后使用

環(huán)境應(yīng)用

命令描述
pyenv global 版本號更改本機版本,重啟不會造成再次更改
pyenv local 版本號會在當前目錄創(chuàng)建 .python-version 文件,并記錄設(shè)置的 python 環(huán)境,每次進入該目錄會自動設(shè)置成該 python 環(huán)境
pyenv shell 版本號更改當前 shell 下使用的 python 版本,臨時生效,優(yōu)先級高于 global

二、virtualenv插件

1、安裝

方式一:Git Clone

cd .pyenv/plugins
git clone https://github.com/pyenv/pyenv-virtualenv.git # 安裝virtualenv插件

方式二:Homebrew

brew install pyenv-virtualenv

2、配置

無論使用上述的哪種方式進行的安裝,請根據(jù)自身環(huán)境,將下方內(nèi)容加到對應(yīng)文件中: .bashrc / .zshrc

eval "$(pyenv virtualenv-init -)"

3、使用

基本使用

命令描述
pyenv virtualenv 3.8.3 env383創(chuàng)建 3.8.3 版本虛擬環(huán)境
pyenv virtualenvs顯示環(huán)境
pyenv activate env383激活使用指定的虛擬環(huán)境
pyenv deactivate退出當前虛擬環(huán)境
rm -rf .pyenv/versions/3.8.3刪除版本環(huán)境
rm -rf .pyenv/versions/env383刪除虛擬環(huán)境

自動激活和退出虛擬環(huán)境

在需要使用虛擬環(huán)境的目錄(通常是項目目錄)中:

  • 建立一個 .python-version 的文本文件
  • 將虛擬環(huán)境名稱(如 env383 )寫在里面

之后每次進/出該目錄時,虛擬環(huán)境都將自動激活/退出。

三、報錯

1、激活指定的虛擬環(huán)境時報錯

# 命令
pyenv activate env383

# 報錯信息
Failed to activate virtualenv.

Perhaps pyenv-virtualenv has not been loaded into your shell properly.
Please restart current shell and try again.

別慌,重啟你的終端,或者執(zhí)行如下命令即可

exec $SHELL -l

2、還是系統(tǒng)版本

如果你用 pyenv versions 查看,明明已經(jīng)切換成功,但是用 python -V卻還是系統(tǒng)版本。

原因是 pyenv沒有加到 $PATH環(huán)境變量里去,解決辦法如下:

export PYENV_ROOT=~/.pyenv
export PATH=$PYENV_ROOT/shims:$PATH

3、安裝 python報錯

安裝 python報錯,如

pyenv install 3.8.3

報錯內(nèi)容:

python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.8.3.tar.xz...
-> https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tar.xz
Installing Python-3.8.3...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk

BUILD FAILED (OS X 12.0.1 using python-build 20180424)

Inspect or clean up the working tree at /var/folders/cy/8zkx5hys2tsgb1d_x42_r8qc0000gn/T/python-build.20220122174148.1531
Results logged to /var/folders/cy/8zkx5hys2tsgb1d_x42_r8qc0000gn/T/python-build.20220122174148.1531.log

Last 10 log lines:
clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include   -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include   -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration  -I./Include/internal  -I. -I./Include -I/usr/local/opt/readline/include -I/usr/local/opt/readline/include -I/usr/local/var/pyenv/versions/3.8.3/include -I/usr/local/opt/sqlite/include -I/usr/local/opt/readline/include -I/usr/local/opt/readline/include -I/usr/local/var/pyenv/versions/3.8.3/include -I/usr/local/opt/sqlite/include  -DPy_BUILD_CORE_BUILTIN  -c ./Modules/_codecsmodule.c -o Modules/_codecsmodule.o
clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include   -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include   -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration  -I./Include/internal  -I. -I./Include -I/usr/local/opt/readline/include -I/usr/local/opt/readline/include -I/usr/local/var/pyenv/versions/3.8.3/include -I/usr/local/opt/sqlite/include -I/usr/local/opt/readline/include -I/usr/local/opt/readline/include -I/usr/local/var/pyenv/versions/3.8.3/include -I/usr/local/opt/sqlite/include  -DPy_BUILD_CORE_BUILTIN  -c ./Modules/_weakref.c -o Modules/_weakref.o
./Modules/posixmodule.c:9221:15: error: implicit declaration of function 'sendfile' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        ret = sendfile(in, out, offset, &sbytes, &sf, flags);
              ^
clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include   -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include   -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration  -I./Include/internal  -I. -I./Include -I/usr/local/opt/readline/include -I/usr/local/opt/readline/include -I/usr/local/var/pyenv/versions/3.8.3/include -I/usr/local/opt/sqlite/include -I/usr/local/opt/readline/include -I/usr/local/opt/readline/include -I/usr/local/var/pyenv/versions/3.8.3/include -I/usr/local/opt/sqlite/include  -DPy_BUILD_CORE_BUILTIN  -DPy_BUILD_CORE_BUILTIN -I./Include/internal -c ./Modules/_functoolsmodule.c -o Modules/_functoolsmodule.o
1 error generated.
make: *** [Modules/posixmodule.o] Error 1
make: *** Waiting for unfinished jobs....
1 warning generated.

使用下面的命令安裝即可,注意修改成相應(yīng)的版本號

CFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix bzip2)/include -I$(brew --prefix readline)/include -I$(xcrun --show-sdk-path)/usr/include" LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix bzip2)/lib" pyenv install --patch 3.8.3 < <(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch\?full_index\=1)

四、注意

  • 安裝好的版本不做任何修改,我們只操作虛擬環(huán)境,如 env383
  • 可以通過版本來多個虛擬環(huán)境,如 env383_1、env383_2
  • 導出當前環(huán)境的依賴庫: pip freeze > requirements.txt
  • 導入依賴庫到當前環(huán)境: pip install -r requirements.txt

五、相關(guān)知識

5.1、pyenv能做什么

1,基于每個用戶更改全局Python版本

2,對每個項目的Python版本提供支持

3,允許通過環(huán)境變量覆蓋Python版本

4,一次搜索多個版本的Python

5.2、pyenv運行

在一個高的級別上,pyenv使用shim可執(zhí)行文件注入到PATH來攔截Python命令;確定您的應(yīng)用程序指定了哪個Python版本,并將命令傳遞給正確的已安裝Python版本。

5.3、PATH

當運行諸如python或pip等命令時,操作系統(tǒng)將在目錄列表中搜索以查找具有該名稱的可執(zhí)行文件。此目錄列表位于一個名為PATH的環(huán)境變量中,列表中的每個目錄都用冒號分隔:

/usr/local/bin:/usr/bin:/bin

PATH從左到右搜索目錄,因此列表開頭目錄中的匹配可執(zhí)行文件優(yōu)先于結(jié)尾目錄中的另一個可執(zhí)行文件。在這個例子中, /usr/local/bin目錄將被搜索的第一個,然后是/usr/bin,然后是/bin。

5.4、shims

pyenv通過在你的PATH前插入shims目錄來工作:

$(pyenv root)/shims:/usr/local/bin:/usr/bin:/bin

Shim是輕量級的可執(zhí)行文件,它們只是將命令傳遞給pyenv。因此在安裝了pyenv的情況下,運行pip時操作系統(tǒng)將執(zhí)行以下操作:

1,在PATH中搜索名稱為pip的可執(zhí)行文件

2,在PATH開頭的shims目錄中,找到名稱為pip的shim文件

3,運行名稱為pip的shime文件,shime將命令傳遞給pyenv

總結(jié)

到此這篇關(guān)于Mac中pyenv的安裝與使用的文章就介紹到這了,更多相關(guān)Mac pyenv安裝使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于Python實現(xiàn)微博抓取GUI程序

    基于Python實現(xiàn)微博抓取GUI程序

    在前面的分享中,我們制作了一個天眼查 GUI 程序,今天我們在這個的基礎(chǔ)上,繼續(xù)開發(fā)新的功能,微博抓取工具,感興趣的可以了解一下
    2022-09-09
  • PyQt4實現(xiàn)下拉菜單可供選擇并打印出來

    PyQt4實現(xiàn)下拉菜單可供選擇并打印出來

    這篇文章主要為大家詳細介紹了PyQt4實現(xiàn)下拉菜單可供選擇并打印出來,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Python并發(fā)多線程的具體操作步驟

    Python并發(fā)多線程的具體操作步驟

    并發(fā)指的是任務(wù)數(shù)多余cpu核數(shù),通過操作系統(tǒng)的各種任務(wù)調(diào)度算法,實現(xiàn)用多任務(wù)一起執(zhí)行,下面這篇文章主要給大家介紹了關(guān)于Python并發(fā)多線程的具體操作步驟的相關(guān)資料,需要的朋友可以參考下
    2024-02-02
  • python實現(xiàn)碑帖圖片橫向拼接

    python實現(xiàn)碑帖圖片橫向拼接

    這篇文章主要為大家詳細介紹了python實現(xiàn)碑帖圖片橫向拼接,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • Python實現(xiàn)將Excel某范圍單元格內(nèi)容截圖

    Python實現(xiàn)將Excel某范圍單元格內(nèi)容截圖

    Openpyxl是一個強大的Python庫,主要用于讀取、寫入和操作Excel文件,本文將使用Openpyxl實現(xiàn)將Excel某范圍單元格內(nèi)容截圖,感興趣的可以了解下
    2024-11-11
  • python實現(xiàn)Pyecharts實現(xiàn)動態(tài)地圖(Map、Geo)

    python實現(xiàn)Pyecharts實現(xiàn)動態(tài)地圖(Map、Geo)

    這篇文章主要為大家詳細介紹了python實現(xiàn)Pyecharts實現(xiàn)動態(tài)地圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Python中字典的基礎(chǔ)介紹及常用操作總結(jié)

    Python中字典的基礎(chǔ)介紹及常用操作總結(jié)

    字典也是python的數(shù)據(jù)類型中的一種,它由許多鍵值對組成,它是一種可變?nèi)萜髂P?一般情況下鍵是唯一的,字典支持嵌套,下面這篇文章主要給大家介紹了關(guān)于Python中字典的基礎(chǔ)介紹及常用操作,需要的朋友可以參考下
    2021-09-09
  • Python學習之線程池與GIL全局鎖詳解

    Python學習之線程池與GIL全局鎖詳解

    本文我們將學習線程池的創(chuàng)建與全局鎖。線程池的創(chuàng)建于進程池的原理是相同的;關(guān)于GIL全局鎖,暫時沒有代碼上的練習,而是對其概念進行一個簡單的啟蒙,感興趣的可以了解一下
    2022-04-04
  • win10下python3.5.2和tensorflow安裝環(huán)境搭建教程

    win10下python3.5.2和tensorflow安裝環(huán)境搭建教程

    這篇文章主要為大家詳細介紹了win10下python3.5.2和tensorflow安裝環(huán)境搭建教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • 全面解讀Python Web開發(fā)框架Django

    全面解讀Python Web開發(fā)框架Django

    Django是一個開源的Web應(yīng)用框架,由Python寫成。采用MVC的軟件設(shè)計模式,主要目標是使得開發(fā)復雜的、數(shù)據(jù)庫驅(qū)動的網(wǎng)站變得簡單。Django注重組件的重用性和“可插拔性”,敏捷開發(fā)和DRY法則(Don’t Repeat Yoursef)。
    2014-06-06

最新評論

长沙市| 乌拉特中旗| 平远县| 清水县| 长沙市| 都安| 黄陵县| 蒙城县| 苍溪县| 桐城市| 晋宁县| 巨野县| 璧山县| 湖南省| 汉寿县| 龙岩市| 农安县| 水富县| 利川市| 手机| 洪雅县| 房产| 高唐县| 哈巴河县| 大足县| 晋中市| 梁山县| 吉木乃县| 安图县| 井研县| 思南县| 临沂市| 玉田县| 杭锦后旗| 江津市| 会理县| 西乡县| 阿拉善左旗| 开阳县| 武胜县| 长泰县|