目前使用 pyenv,管理不同版本 python方便
旧项目一般是 virtualenv
使用 pipenv 管理
pipenv 是官方推荐的管理python环境的方式,不需要激活虚拟环境,进入到项目的虚拟环境就可以了
安装:
pip3 install pipenv
创建项目文件夹,在项目目录下执行:
pipenv --python 3.6pipenv install django
会在目录下创建 Pipfile 文件,内容:
[[source]]name = "pypi"url = "https://mirrors.aliyun.com/pypi/simple/" # 修改镜像verify_ssl = true[dev-packages] # 开发的依赖包[packages] # 生产环境包django = "*"[requires]python_version = "3.6"
每次使用 pipenv 安装新包的时候都会更新 Pipfile 的内容
开发时可以设置跳过 lock 的过程,等项目开发好了再更新 lock 的 哈希值:
pipenv install request --skip-lock
查看包依赖:
root@xxx:/home/myproject# pipenv graphDjango==2.2.3- pytz [required: Any, installed: 2019.1]- sqlparse [required: Any, installed: 0.3.0]
使用 pyenv 创建 python 虚拟环境
github:https://github.com/pyenv/pyenv
码云:https://gitee.com/mirrors/pyenv
1. 安装 pyenv
国内是用码云:
centos 7
// 克隆码云的 pyenv 源代码git clone https://gitee.com/mirrors/pyenv.git ~/.pyenv// (可选)尝试编译动态bash扩展以加快pyenv的速度。如果它失败了,请不要担心。pyenv仍然可以正常工作cd ~/.pyenv && src/configure && make -C src
vim ~/.bashrc 加入以下命令
export PYENV_ROOT="$HOME/.pyenv"export PATH="$PYENV_ROOT/bin:$PATH"eval "$(pyenv init -)"# virtualenv 插件用的初始化命令eval "$(pyenv virtualenv-init -)"
source ~/.bashrc
安装 virtualenv 插件
git clone https://gitee.com/ALVIN-YANG/pyenv-virtualenv ~/.pyenv/plugins/pyenv-virtualenv
2. pyenv 常用命令
列出所有命令,
*后 是当前 python 版本pyenv versions查看可安装版本
pyenv install -l安装对应版本
pyenv install 3.7.0
- 卸载对应版本
pyenv uninstall 3.7.0
- 切换 python 版本: 有三个优先级 shell > local > global
python shell/local/global 3.7.0
- 查看 pyenv 安装的插件
ls -la ~/.pyenv/plugins
- python 各个版本路径
/root/.pyenv/versions/2.7.6/
3.pyenv 的插件 pyenv-virtualenv
- 列出 pyenv 所有虚拟环境
pyenv virtualenvs
- 激活虚拟环境
pyenv activate xxx
- 创建虚拟环境
pyenv virtualenv [版本名] [环境名]
- 删除虚拟环境
_pyenv_`` ``uninstall [环境名]
虚拟环境位置:/root/.pyenv/versions/2.7.6/envs/xxxxxx
如果切换不生效
https://github.com/pyenv/pyenv/issues/185
$PYENV_ROOT/bin 修改成 $PYENV_ROOT/shims
export PYENV_ROOT=~/.pyenvexport PATH=$PYENV_ROOT/shims:$PATH
4. 镜像安装 只需修改 v
v=3.7.3;wget https://npm.taobao.org/mirrors/python/$v/Python-$v.tar.xz -P ~/.pyenv/cache/;pyenv install $v
提醒 需要安装依赖
centos:
yum -y install bzip2-devel readline-devel sqlite-devel libffi-devel
ubuntu:
apt-get install -y libssl-dev libreadline-dev libsqlite3-dev libffi-devel
over
连接 mysql
centos:
yum install mysql-devel
ubuntu:
apt-get install libmysqlclient-dev
使用 virtualenvwrapper 安装
pip install virtualenv virtualenvwrapper
安装完成后,在~/.zshrc写入以下内容
# 存放虚拟环境的目录export WORKON_HOME=~/.virtualenv# virtrualenvwrapper会安装到python的bin目录下,(不同操作系统位置可能不一样,whereis 找一下)# 所以该路径是python安装目录下bin/virtualenvwrapper.shsource /usr/local/bin/virtualenvwrapper.sh
更新配置文件
source ~/.zshrc
创建虚拟环境, 这样会在WORKON_HOME变量指定的目录下新建名为 env 的虚拟环境。
mkvirtualenv env
若想指定python版本,可通过”—python”指定python解释器
mkvirtualenv --python=/usr/local/Cellar/python/3.7.0/bin/python env3
查看当前的虚拟环境目录
[root@localhost ~]# workonpy2py3
切换到虚拟环境
[root@localhost ~]# workon py3
退出虚拟环境
(py3) [root@localhost ~]# deactivate[root@localhost ~]#
删除虚拟环境
rmvirtualenv venv
