Python
基本用法
列表与字典
选择与循环语句
函数与模块
中文转拼音
Excel操作
Panads
DOC操作
调用etcd模块
调用zookeeper模块
调用redis模块
pyinstaller打包
安装conda
使用conda打包32程序
python发送html邮件
HTTP请求
自建代理ip池
mysql操作
Python图片生成
HTML转图片
文件md5及base64
调用mongo
多进程与多线程
pyecharts绘图模块
多环境管理(Pyenv/Virtualenv)
PIP
本文档使用MrDoc发布
返回首页
-
+
多环境管理(Pyenv/Virtualenv)
2022年2月25日 19:16
admin
#Pyenv ##管理多版本Python的工具 ####对Python的版本进行管理,实现不同版本间的切换和使用。 --- ##原理 ####Pyenv作为Python的版本管理工具,通过改变Shell的环境变量来切换不同的Python版本,以达到多版本共存的目的。 --- ####1、Pyenv安装后会在系统PATH中插入shims路径,每次执行Python相关的可执行文件时,会优先在shims里寻找Python路径 ~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin --- ####2、系统选择Python版本,依如下顺序选择Python的版本: Shell变量设置(pyenv shell查看) 当前目录下的.python_version文件里的版本号(pyenv shell查看) 上层目录查询找到的第一个.pyenv-version文件 全局的版本号在~/.pyenv/version文件内(pyenv global查看) --- #安装部署 git clone https://github.com/pyenv/pyenv.git ~/.pyenv --- ##设置变量 echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc --- ##重启当前Shell exec $Shell -l --- #使用 ##参数说明 |参数|说明| |--|-- |commands|列出pyenv的所有可用命令 |local|设置或列出当前环境下Python版本号 |global|设置或列出全局环境下Python版本号 |shell|设置或列出Shell环境下Python版本号 |install|安装指定的Python版本 |uninstall|卸载指定的Python版本 |rehash|重新加载Pyenv的shims路径(安装完Python版本后需执行该命令) |version|展示当前Python版本号及其生效的路径 |versions|列出Pyenv管控的所有可用Python版本 |which|列出要使用命令的绝对路径 --- ##示例 #列出pyenv的所有可用命令 pyenv install -list #安装指定的Python版本 pyenv install 3.4.1 #切换当前目录Python版本为3.4.1 pyenv local 3.4.1 #切换全局目录Python版本为3.4.1 pyenv global 3.4.1 #刷新shims pyenv rehash --- #Virtualenv(Python虚拟环境) #简介 python 的虚拟环境可以为一个 python 项目提供独立的解释环境、依赖包等资源,既能够很好的隔离不同项目使用不同 python 版本带来的冲突,而且还能方便项目的发布。 #virtualenv virtualenv可用于创建独立的 Python 环境,它会创建一个包含项目所必须要的执行文件。 --- #安装 virtualenv #官方安装 pip install virtualenv #配置 pip 安装第三方库的镜像源地址 pip install -i https://pypi.douban.com/simple virtualenv #使用 virtualenv >##创建虚拟环境 virtualenv <虚拟环境名称> #如上命令表示在当前目录下创建一个名叫 env 的目录(虚拟环境),该目录下包含了独立的 Python 运行程序,以及 pip副本用于安装其他的 packge ------------------------------------------------------ virtualenv -p /usr/local/bin/python3 <虚拟环境名称> #创建 env 的时候可以选择 Python 解释器 ------------------------------------------------------ virtualenv --no-site-packages <虚拟环境名称> #默认情况下,虚拟环境会依赖系统环境中的 site packages,就是说系统中已经安装好的第三方 package 也会安装在虚拟环境中,如果不想依赖这些 package,那么可以加上参数 --no-site-packages 建立虚拟环境 --- >##启动虚拟环境 source <虚拟环境目录>/bin/activate #注意此时命令行会多一个(ENV),ENV为虚拟环境名称,接下来所有模块都只会安装到这个虚拟的环境中去。 ---- >##退出虚拟环境 deactivate --- >##删除虚拟环境 直接运行rm -rf <虚拟环境目录>命令即可 --- #Virtualenvwrapper(虚拟环境管理工具) #作用 >####virtualenv 的一个最大的缺点就是: 每次开启虚拟环境之前要去虚拟环境所在目录下的 bin 目录下 source 一下 activate,这就需要我们记住每个虚拟环境所在的目录。 >####Virtualenvwrapper 是一个虚拟环境管理工具,它能够管理创建的虚拟环境的位置,并能够方便地查看虚拟环境的名称以及切换到指定的虚拟环境。 将您的所有虚拟环境在一个地方。 包装用于管理虚拟环境(创建,删除,复制)。 使用一个命令来环境之间进行切换。 --- #安装 virtualenvwrapper #官方安装 pip install virtualenvwrapper #配置 pip 安装第三方库的镜像源地址 pip install -i https://pypi.douban.com/simple virtualenvwrapper #对于Windows,您可以使用 virtualenvwrapper-win pip install virtualenvwrapper-win ###注:安装需要在非虚拟环境下进行,而且确保 virtualenv 已经安装了 --- #初始配置 >####默认virtualenvwrapper安装在/usr/local/bin下面,实际上需要运行virtualenvwrapper.sh文件才行;所以需要先进行配置一下: --- >####创建虚拟环境管理目录 mkdir -p /usr/local/virtualenvs >####修改~/.bashrc配置文件 vim ~/.bashrc ------------------------------------------------------- export WORKON_HOME=/usr/local/virtualenvs # 所有虚拟环境存储的目录 export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 # 指定python路径 if [ -e $HOME/.local/bin/virtualenvwrapper.sh ];then source $HOME/.local/bin/virtualenvwrapper.sh elif [ -e /usr/local/bin/virtualenvwrapper.sh ];then source /usr/local/bin/virtualenvwrapper.sh fi export PIP_VIRTUALENV_BASE=$WORKON_HOME ------------------------------------------------------- >####启动 virtualenvwrapper: source ~/.bashrc --- #使用 virtualenvwrapper >##创建虚拟环境 mkvirtualenv <虚拟环境名称> #创建虚拟环境 mkvirtualenv <虚拟环境名称> --python=python3.6 #创建虚拟环境的时候可以选择 Python 解释器 --- >##查看虚拟环境 lsvirtualenv 或 workon --- >##启动虚拟环境 workon <虚拟环境名称> ---- >##退出虚拟环境 deactivate --- >##删除虚拟环境 rmvirtualenv <虚拟环境名称> --- >##虚拟环境内命令 cdvirtualenv [目录名称] #导航到当前激活的虚拟环境的目录中,比如说这样您就能够浏览它的 site-packages。 cdsitepackages [目录名称] # 和上面的类似,但是是直接进入到 site-packages 目录中。 lssitepackages [目录名称] #显示 site-packages 目录中的内容。
分享到: