如何优雅的搭建python环境
简单的说明
创建python环境,主要有这几个场景:
1、安装不同版本的python
2、安装python虚拟环境
3、安装python库
4、pip安装python应用程序(比如mycli),保证依赖的python不混乱
作为一名python后端工程师,我来说一下我的最佳实践。
老版本: pyenv + pipenv
安装python
要知道,python的版本分为好多,有些python库对最新版本不支持,有些库不兼容老版本,所以,一个项目,必须锁住python的版本,才能减少不必要的麻烦。
这里推荐pyenv,这个安装python的工具,非常好用,送上几个链接,说明仅仅参考他们安装pyenv的过程就好,虚拟环境不要参考:
Centos 7.4 安装pyenv及使用说明
https://blog.csdn.net/qq_39719589/article/details/80847521
pyenv intall 下载速度特别慢?
https://blog.csdn.net/ksws0292756/article/details/79995731
Ubuntu下安装pyenv实现Python多版本共存
https://www.linuxidc.com/Linux/2018-04/151988.htm
pyenv 让 python 版本完美切换
https://www.jianshu.com/p/3e93311fe6cb
这样安装python,自带pip
安装pipenv,作为包管理工具和虚拟环境
使用pipenv,写requests的大神写的,完全包括了pip和virtualenv,不用那么麻烦的操作,而且,版本控制更优秀。
上链接:
Python新利器之pipenv
https://www.jianshu.com/p/00af447f0005
新版本:miniConda
官网下载sh文件
https://docs.conda.io/en/latest/miniconda.html
运行脚本
bash Miniconda3-py37_4.10.3-Linux-x86_64.sh
设置快捷命令
echo 'export PATH=/miniconda3/bin:$PATH’>>/.bashrc
重启bash
source ~/.bashrc
常用命令
查看包
conda list
查看当前env list
conda-env list
创建虚拟环境
使用conda create创建虚拟环境,比如创建一个名字为djangocms,python version为2.7的虚拟环境:
conda create -n djangocms python=2.7 -y
注意:这里最好指定python的版本,例如python=2.7
不然系统会直接使用global python version
并且把你所安装的依赖包全部放在global env下面,不利于你对python虚拟环境的隔离
激活虚拟环境
conda activate djangocms
退出虚拟环境
conda deactivate
配置
查看配置
conda config --show
修改配置
conda config --add key value
conda config --remove key value
key 为 ‘ : ’ 前的值,envs_dirs、pkgs_dirs等
添加、删除envs_dirs:
conda config --add envs_dirs dir
conda config --remove envs_dirs dir
conda config --add pkgs_dirs D:\miniconda\conda-pkgs
conda config --add envs_dirs D:\miniconda\conda-envs
conda 创建/删除/重命名 环境
创建新环境
conda create -n rcnn python=3.6
删除环境
conda remove -n rcnn --all
重命名环境
conda 其实没有重命名指令,实现重命名是通过 clone 完成的,分两步:
先 clone 一份 new name 的环境
删除 old name 的环境
比如,想把环境 rcnn 重命名成 tf
第1步
conda create -n tf --clone rcnn
Source: /anaconda3/envs/rcnn
Destination: /anaconda3/envs/tf
Packages: 37
Files: 8463
第2步
conda remove -n rcnn --all
结果
conda info -e
#conda environments:
crawl /anaconda3/envs/crawl
flask /anaconda3/envs/flask
tf /anaconda3/envs/tf
root * /anaconda3
安装完conda后,进入终端显示(base)
通过配置auto_activate_base关闭自动进入conda基础环境:
conda config --set auto_activate_base false
想要重新开启就设为true就行了
conda config --set auto_activate_base true
添加国内源(选清华源或中科大源)
清华源
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/msys2/
conda config --set show_channel_urls yes # 设置搜索时显示通道地址
安装python应用程序:pipx
为 Python 应用构建独立的安装与运行环境
起因
在运用 Python 的过程中,我们不仅会使用丰富的 Python package,也会发现很多有用的工具,如:环境管理工具 pipenv,SQL 命令行客户端 mycli,下载工具 you-get 等。虽然 python 自带的 pip 工具为我们提供了丰富的安装与管理功能,同时在 virtualenv 的帮助下,我们并不是太担心 Python 的版本升级会对我们的开发环境产生太大的影响。但是,我们通过 pip 安装的 Python 实用工具,在版本升级的过程中并不能幸免。除非我们单独设置独立的,专门用于安装这些工具的虚拟环境。但是,每次安装都需要切换到虚拟环境,未免显得过于繁琐。难道就不能更给力一些嘛~~答案当然是肯定的。pipx就是为了解决这样的困扰而诞生的。
首先来看一个例子
动图
有没觉得如此简单的,就像我们通过 pip,pipenv 等安装 package 一样简洁明了。同时 pipx 会为我们自动构建用于工具运行的虚拟环境,再也不用担心随着 Python 大版本的升级导致的工具丢失了。
安装
MacOS
可以通过 Howbrew 来安装
brew install pipx
将 pipx 虚拟环境下的 $PATH 加入到系统中
pipx ensurepath
Windows 可以通过 Scoop 来安装
scoop bucket add pipx-standalone https://github.com/uranusjr/pipx-standalone.git
scoop install pipx
pipx ensurepath
Linux
Ubuntu
sudo apt-get update
sudo apt-get install pipx
pipx ensurepath
使用
pipx install [PACKAGE-NAME]
查看目前安装了哪些工具包
pipx list
甚至可以不进行安装,直接在 pipx 所管理的虚拟环境中运行 Python 开发的 CLI 工具
pipx run pycowsay moooo!
进阶
pipx 同时提供很多扩展功能,可以通过运行 --help 来进行查看
pipx --help
usage: pipx [-h] [–version]
{install,inject,upgrade,upgrade-all,uninstall,uninstall-all,reinstall-all,list,run,runpip,ensurepath,completions}
…
Install and execute apps from Python packages.
Binaries can either be installed globally into isolated Virtual Environments
or run directly in an temporary Virtual Environment.
Virtual Environment location is ~/work/pipx/pipx/“/opt/pipx”/venvs.
Symlinks to apps are placed in ~/work/pipx/pipx/“/opt/pipx_bin”.
Optional Environment Variables:
PIPX_HOME: Overrides default pipx location. Virtual Environments
will be installed to $PIPX_HOME/venvs.
PIPX_BIN_DIR: Overrides location of app installations. Apps are symlinked
or copied here.
USE_EMOJI: Override emoji behavior. Default value varies based on platform.
PIPX_DEFAULT_PYTHON: Overrides default python used for commands.
optional arguments:
-h, --help show this help message and exit
–version Print version and exit
subcommands:
Get help for commands with pipx COMMAND --help
{install,inject,upgrade,upgrade-all,uninstall,uninstall-all,reinstall-all,list,run,runpip,ensurepath,completions}
install Install a package
inject Install packages into an existing Virtual Environment
upgrade Upgrade a package
upgrade-all Upgrade all packages. Runs pip install -U <pkgname>
for each package.
uninstall Uninstall a package
uninstall-all Uninstall all packages
reinstall-all Reinstall all packages
list List installed packages
run Download the latest version of a package to a
temporary virtual environment, then run an app from
it. Also compatible with local __pypackages__
directory (experimental).
runpip Run pip in an existing pipx-managed Virtual
Environment
ensurepath Ensure directories necessary for pipx operation are in
your PATH environment variable.
completions Print instructions on enabling shell completions for
pipx