国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

使用pyenv和virtualenv搭建python虛擬環境實踐總結

2019-11-08 01:04:06
字體:
來源:轉載
供稿:網友

介紹

出于種種原因,很多人的電腦上會同時安裝很多個版本的 Python,比如會有 2.7 + 3.4。一般在 windows 下我們都可以通過使用絕對路徑的方式來繞過系統對 PATH 環境變量的查詢;在 linux 下除了這種方式外,還可以在腳本文件開頭顯示指定需要使用的解釋器,就像這樣:#!/usr/bin/env python2.7 或 #!usr/bin/env python3.4。一旦特定版本的解釋器被打開后,就不用再擔心 PATH 的問題了

對于上述問題的解決方案,更多人可能會首先想到 virtualenv。但與用于創建獨立包環境的 virtualenv 不同,pyenv 的作用僅限于維護不同版本的 Python。它的使用不依賴于 Python,是一個簡單、獨立的純 shell 腳本工具。pyenv 也以 pyenv-virtualenv 插件的形式支持 virtualenv,強烈建議使用。安裝后比較方便的是可以在你 cd 到項目目錄時自動切換相應的虛擬環境,而不用老是 source.

pyenv 在安裝和配置完畢后可以實現:一鍵(命令)切換全局、本地或當前 shell 使用的 Python 版本。

pyenv 原理

pyenv 的美好之處在于,他并沒有使用將不同的 PATH植入不同的shell這種高耦合的工作方式,而是簡單地在PATH 的最前面插入了一個墊片路徑(shims):~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin。所有對 Python 可執行文件的查找都會首先被這個 shims 路徑截獲,從而架空了后面的系統路徑。

安裝pyenv

pyenv 的 github 頁面 提供了完整的安裝與使用指導,所以本文基本上就是對 Readme 的翻譯和解釋

手動安裝

手動安裝詳細步驟如下:

$mkdir ~/.pyenv$git clone git://github.com/yyuu/pyenv.git .pyenv$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_PRofile$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile #向 shell 添加 pyenv init 以啟用 shims 和命令補完功能$ exec $SHELL$ source ~/.bash_profile

這里的 shell 配置文件(~/.bash_profile)依不同Linux 而需作修改——Zsh:~/.zshenv;Ubuntu:~/.bashrc

自動安裝

$ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

pyenv 命令總結

詳細列表:https://github.com/yyuu/pyenv/blob/master/COMMANDS.md#command-reference

常用命令如下: - pyenv versions:查看當前 pyenv 可檢測到的所有版本,處于激活狀態的版本前以 * 標示。 - pyenv version:查看當前處于激活狀態的版本,括號中內容表示這個版本是由哪條途徑激活的(global、local、shell) - pyenv install:使用 python-build(一個插件) 安裝一個 Python 版本,到 $PYENV_ROOT/versions 路徑下。建議添加 -v 參數用于顯示細節。python-build 會首先嘗試從一個鏡像站點下載包,此時可以去 /tmp/python-build.xxx 里面關心一下下載速度 - pyenv uninstall:卸載一個版本 - pyenv rehash:為所有已安裝的可執行文件 (如:~/.pyenv/versions//bin/) 創建 shims,因此,每當你增刪了 Python 版本或帶有可執行文件的包(如 pip)以后,都應該執行一次本命令 - pyenv global:設置全局的 Python 版本,通過將版本號寫入 ~/.pyenv/version 文件的方式。 - pyenv local:設置面向程序的本地版本,通過將版本號寫入當前目錄下的 .python-version 文件的方式。通過這種方式設置的 Python 版本優先級較 global 高。pyenv 會從當前目錄開始向上逐級查找 .python-version 文件,直到根目錄為止。若找不到,就用 global 版本。 - pyenv shell:設置面向 shell 的 Python 版本,通過設置當前 shell 的 PYENV_VERSION 環境變量的方式。這個版本的優先級比 local 和 global 都要高。–unset 參數可以用于取消當前 shell 設定的版本。

安裝pyenv-virtualenv

介紹

pyenv virtualenv是pyenv的插件,為UNIX系統上的Python virtualenvs提供pyenv virtualenv命令。

安裝步驟

$git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv$echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile$source ~/.bash_profile

實踐

多個Python版本快速切換

首先我們可以查看一下有哪些版本的python 可以安裝:pyenv install –list安裝:pyenv install -v 3.5.3(這個過程會比較漫長)pyenv versions (查看所有版本)$ pyenv versions * system (set by /root/.pyenv/version) 3.5.3pyenv version(查看當前版本)

系統中不同python版本切換的操作截圖如下: 這里寫圖片描述

利用virtualenv 創建虛擬python環境

創建一個3.5.3的環境:$ pyenv virtualenv 3.5.3 env353 (這條命令在本機上創建了一個名為env353的python虛擬環境,這個環境的真實目錄位于:~/.pyenv/versions/)切換和使用新的python虛擬環境:$ pyenv activate env353環境驗證(env353) root@native-sunaihua-5-25-18:~# pyenv activate env353 pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.(env353) root@native-sunaihua-5-25-18:~# python --versionPython 3.5.3(env353) root@native-sunaihua-5-25-18:~# pip listDEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.pip (9.0.1)setuptools (28.8.0)

可以看到, python版本已經是3.5.3, 而且是在虛擬環境之中 (env353),這時可以對這個環境進行任意包的安裝,且不會對其他環境造成影響

離開環境:pyenv deactivate
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 义乌市| 廉江市| 安达市| 孟津县| 台东市| 鄱阳县| 宜兴市| 泰来县| 壶关县| 上高县| 吉隆县| 华坪县| 通化县| 彩票| 子洲县| 巴楚县| 巴里| 红桥区| 大庆市| 天门市| 文登市| 洞头县| 临猗县| 宁津县| 绥德县| 容城县| 东源县| 阜新| 禄丰县| 洪湖市| 南岸区| 临武县| 怀集县| 化州市| 芮城县| 巴东县| 云南省| 新余市| 贵阳市| 泰宁县| 合江县|