<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
pyenv 可在不同 python 版本之間輕鬆切換,實現 python 環境隔離,且支援自動啟用和退出虛擬環境
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
安裝
brew install pyenv
根據自身環境,將下方內容加到對應檔案中: .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
驗證安裝是否成功:
pyenv
基本使用
命令 | 描述 |
---|---|
pyenv --version | 檢視 pyenv 的版本 |
pyenv versions | 羅列當前已安裝的所有 python 環境,如果是當前正在使用的環境,則前面會有個 * |
pyenv help | 檢視幫助 |
pyenv init | 如果輸入 pyenv 之後使用 tab 不補全,可以使用該命令進行初始即可使用補全命令 |
安裝環境
命令 | 描述 |
---|---|
pyenv install -l | 顯示可以安裝的版本列表 |
pyenv install 版本號 | 安裝指定版本的 python |
pyenv rehash | 更新本地資料庫,安裝指定版本的 python 後使用 |
環境應用
命令 | 描述 |
---|---|
pyenv global 版本號 | 更改本機版本,重啟不會造成再次更改 |
pyenv local 版本號 | 會在當前目錄建立 .python-version 檔案,並記錄設定的 python 環境,每次進入該目錄會自動設定成該 python 環境 |
pyenv shell 版本號 | 更改當前 shell 下使用的 python 版本,臨時生效,優先順序高於 global |
cd .pyenv/plugins git clone https://github.com/pyenv/pyenv-virtualenv.git # 安裝virtualenv外掛
brew install pyenv-virtualenv
無論使用上述的哪種方式進行的安裝,請根據自身環境,將下方內容加到對應檔案中: .bashrc / .zshrc
eval "$(pyenv virtualenv-init -)"
命令 | 描述 |
---|---|
pyenv virtualenv 3.8.3 env383 | 建立 3.8.3 版本虛擬環境 |
pyenv virtualenvs | 顯示環境 |
pyenv activate env383 | 啟用使用指定的虛擬環境 |
pyenv deactivate | 退出當前虛擬環境 |
rm -rf .pyenv/versions/3.8.3 | 刪除版本環境 |
rm -rf .pyenv/versions/env383 | 刪除虛擬環境 |
在需要使用虛擬環境的目錄(通常是專案目錄)中:
之後每次進/出該目錄時,虛擬環境都將自動啟用/退出。
# 命令 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.
別慌,重啟你的終端,或者執行如下命令即可
exec $SHELL -l
如果你用 pyenv versions 檢視,明明已經切換成功,但是用 python -V卻還是系統版本。
原因是 pyenv沒有加到 $PATH環境變數裡去,解決辦法如下:
export PYENV_ROOT=~/.pyenv export PATH=$PYENV_ROOT/shims:$PATH
安裝 python報錯,如
pyenv install 3.8.3
報錯內容:
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.
使用下面的命令安裝即可,注意修改成相應的版本號
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)
1,基於每個使用者更改全域性Python版本
2,對每個專案的Python版本提供支援
3,允許通過環境變數覆蓋Python版本
4,一次搜尋多個版本的Python
在一個高的級別上,pyenv使用shim可執行檔案注入到PATH來攔截Python命令;確定您的應用程式指定了哪個Python版本,並將命令傳遞給正確的已安裝Python版本。
當執行諸如python或pip等命令時,作業系統將在目錄列表中搜尋以查詢具有該名稱的可執行檔案。此目錄列表位於一個名為PATH的環境變數中,列表中的每個目錄都用冒號分隔:
/usr/local/bin:/usr/bin:/bin
PATH從左到右搜尋目錄,因此列表開頭目錄中的匹配可執行檔案優先於結尾目錄中的另一個可執行檔案。在這個例子中, /usr/local/bin目錄將被搜尋的第一個,然後是/usr/bin,然後是/bin。
pyenv通過在你的PATH前插入shims目錄來工作:
$(pyenv root)/shims:/usr/local/bin:/usr/bin:/bin
Shim是輕量級的可執行檔案,它們只是將命令傳遞給pyenv。因此在安裝了pyenv的情況下,執行pip時作業系統將執行以下操作:
1,在PATH中搜尋名稱為pip的可執行檔案
2,在PATH開頭的shims目錄中,找到名稱為pip的shim檔案
3,執行名稱為pip的shime檔案,shime將命令傳遞給pyenv
到此這篇關於Mac中pyenv的安裝與使用的文章就介紹到這了,更多相關Mac pyenv安裝使用內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45