python版本管理器-pyenv
pyenv是什么? 能干什么?
pyenv是一个forked自ruby社区的简单、低调、遵循UNIX哲学的Python环境管理工具, 它可以轻松切换全局解释器版本, 同时结合vitualenv插件可以方便的管理对应的包源
pyenv 是一个 python 版本管理工具,可以方便的在工作环境中安装、管理和切换不同版本的 python,结合 pyenv-virtualenv 插件,能够方便的创建和管理 python 虚拟环境,在虚拟环境中的各种操作,并不会影响到系统的正常运行,有效防止乱装 python 版本导致系统崩溃等问题的发生。
安装pyenv
github官网:
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
国内安装:
curl -L https://gitee.com/jordanxu/pyenv-installer/raw/master/bin/pyenv-installer | bash
cat .bashrc
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
fi
使用pyenv安装python
当我们使用pyenv安装python的时候,默认将会去官网下载python,这时国内网络是不通的,解决办法:
自己手动去官网下载所需的python版本,之后上传到 ~/.pyenv/cache目录下:
首先安装python依赖:
yum install gcc make zlib-devel -y
yum groupinstall "Development Tools" -y
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel -y
安装python:
ls ~/.pyenv/cache/
Python-3.8.20.tar.xz
pyenv install 3.8.20
pyenv version
pyenv versions
pyenv global 3.8.20
命令
常用命令:
pyenv version:查看当前版本
pyenv versions:查看所有版本
pyenv install --list:查看所有可安装的版本
pyenv install 3.6.5:安装指定版本
pyenv rehash:安装新版本后rehash一下
pyenv uninstall 3.5.2 :删除指定版本
pyenv global 3.6.5:指定全局版本
pyenv global 3.6.5 2.7.14:指定多个全局版本, 3版本优先
其他命令:
pyenv --version:显示pyenv版本
pyenv commands:查看所有pyenv命令
pyenv version-file/version-name/version-origin:当前Python版本对应的文件/名字/位置
pyenv which:列出可执行文件的绝对路径,比如pyenv which python可以列出python命令的绝对路径
pyenv whence:列出已安装的一个范围内的Python版本,比如列出本地安装的Python2到Python3的版本,可以使用pyenv whence 2to3
pyenv shims:列出当前存在的shims(pyenv的工作原理就是在一个叫shims的目录下创建Python解释器的“假版本”,寻找Python应用时先从该目录查找)
pyenv exec:使用特定Python版本执行某条命令
pyenv hooks:列出给出的pyenv命令的钩子脚本
pyenv init:配置shell环境
pyenv local:为某个应用设置特定的Python版本
pyenv prefix:显示对应Python版本的路径前缀
pyenv root:显示pyenv根目录
pyenv shell:为某个shell设置特定的Python版本(与pyenv local类似)
pyenv-virtualenv
pyenv-virtualenv 是一个管理 python 虚拟环境的 pyenv 插件,具体可以查看 pyenv-virtualenv 文档。
pyenv-virtualenv 的安装
git clone https://github.com/pyenv/pyenv-virtualenv.git $.pyenv/plugins/pyenv-virtualenv
克隆完成后添加如下到shell配置文件(mac的话是.zshrc)
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
使用
# 创建一个3.8.20版本的虚拟环境, 命名为v3.8.20env, 然后激活虚拟环境
pyenv virtualenv 3.8.20 v3.8.20env #创建虚拟环境
pyenv activate v3.8.20env #激活虚拟环境
pyenv deactivate v3.8.20env #关闭虚拟环境
pyenv virtualenvs #列出所有虚拟环境
pyenv uninstall myproject-env #删除虚拟环境
当切换python解释器的时候对应的pip和包库也会一并切换过去, 而且可以为指定版本的解释器创建项目所需的虚拟环境, 切换的时候也异常简单, 个人常用的做法是为每个项目创建不同的虚拟环境, 当进入该环境的时候就可以随便浪而不用担心影响到其它项目
Python虚拟环境
在 Python 中,有几种工具可以用来创建和管理虚拟环境,其中两个最常用的是 venv 和 virtualenv。同时,也有一些第三方工具如 conda(用于 Conda 环境)和 pipenv(用于项目环境)。
venv
venv 是 Python 内置的虚拟环境创建工具。它通常用于创建轻量级的虚拟环境。要创建和激活虚拟环境,可以执行以下命令
# 创建虚拟环境
python -m venv myenv
# 激活虚拟环境(在 Windows 上使用 activate,其他系统使用 source)
source myenv/bin/activate # Linux/Mac
# 或者
myenv\Scripts\activate # Windows
# 在虚拟环境中安装包,执行其他操作
# 退出虚拟环境
deactivate
# 删除虚拟环境,虚拟环境本质是一个目录,直接删除其文件夹即可
rm -rf myenv/
virtualenv
virtualenv 是一个第三方的虚拟环境创建工具。如果你的 Python 版本较旧,或者想要一些 virtualenv 特有的功能,你可以使用它
# 安装 virtualenv
pip install virtualenv
# 创建虚拟环境
virtualenv myenv
# 激活虚拟环境
source myenv/bin/activate # Linux/Mac
# 或者
myenv\Scripts\activate # Windows
# 在虚拟环境中安装包,执行其他操作
# 退出虚拟环境
deactivate
pipenv
pipenv 是一个专门用于项目环境的工具,它集成了包管理和虚拟环境的创建:
# 安装 pipenv
pip install pipenv
# 进入项目目录
cd myproject
# 创建虚拟环境并安装依赖
pipenv install
# 激活虚拟环境
pipenv shell
# 在虚拟环境中执行其他操作
# 退出虚拟环境
exit
Miniconda工具
Miniconda是一款小巧的python环境管理工具,安装包大约只有70M多点,其安装程序中包含conda软件包管理器和Python。一旦安装了Miniconda,就可以使用conda命令安装任何其他软件工具包并创建环境等。
方便的创建多个python虚拟环境,方便多个python项目同时开发的时候,每个项目都有自己独立的python开发环境。相当于在一个园区,建立很多仓库,每个仓库都相互独立,可以安装不同的python环境,防止python环境不对应导致代码运行出错。
安装
wget https://mirrors.ustc.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
配置
安装后,会产生一个miniconda3文件夹,进入到其中的bin文件夹,可以看到可执行文件conda,具体的操作如下。
cd miniconda3/bin/
ls
vim ~/.bashrc
export PATH="/root/miniconda3/bin:$PATH"
配置源
#配置bioconda,添加清华源镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda
conda config --set show_channel_urls yes
#查看镜像源
conda config --show-sources
#删除源
conda config --remove channels +源路径
conda config --set show_channel_urls yes
环境管理命令
常用的conda命令如下:
conda --version #显示conda的版本号
conda info --envs 或 conda env list #查看环境
conda install --prefix=<path> <package name> #安装软件到指定文件夹
conda create -n test_env python=3 sra-tools # 创建test_env流程环境,指定python版本为3,同时下载sra-tools 软件
conda env list #查看环境
conda activate test_env #进入conda 环境
conda deactivate #退出当前conda环境
如果想重命名环境:先新建clone再进行删除
conda create -n test2_env --clone test_env
conda remove -n test_env --all
包管理命令
包的安装路径:
~/miniconda3/envs/ilogstash/lib/python3.10/site-packages
conda install (-y)软件名 # 安装软件
conda install 软件名=版本号 # 安装特定版本软件
conda search 软件名 #搜索软件
conda list # 列出已安装软件
conda update 软件名 #更新软件
conda remove 软件名 #卸载软件
pip包管理工具
pip介绍
pip,是package installer for Python的简称,翻译一下就是Python包管理工具。顾名思义,pip可以管理Python包,包括查找、下载、安装、卸载等功能。Python3.4及以后的版本均已内置pip,不需要另外安装。
Python拥有大量的第三方库,而这些库都被统一放在一个“仓库"里,这个仓库就是PyPI,全名是Python package index,
当在写Python程序需要用到某个Python包时,需要确保当前使用的Python环境已经安装了这个Python包中,而使用pip就可以查看是否安装、以及安装等操作。
pip常用命令
列出已经安装的Python包列表
pip list
安装某个Python包
pip install numpy
pip install numpy-1.21.6-cp37-cp37m-win_amd64.whl # 需要提前下载好离线安装包
pip install -r requirements.txt
卸载某个Python包
pip uninstall numpy
输出当前Python环境下所有已经安装的Python包,经常在生成项目依赖包列表requirements.txt文件时使用。
pip freeze > requirements.txt
显示某个已安装Python包的信息
pip show numpy
检查某个已安装Python包是否具有兼容的依赖项
pip check numpy
设置镜像源
# 配置源
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
# 输出当前pip源
pip config list
# 查看源
pip config get global.index-url
# 删除某个源
pip config unset global.index-url
# 用一个编辑器打开配置文件进行编辑,如果没有指定--editor参数,会用环境遍历EDITOR的值作为编辑器
pip config edit