目前使用 pyenv,管理不同版本 python方便
旧项目一般是 virtualenv
使用 pipenv 管理
pipenv 是官方推荐的管理python环境的方式,不需要激活虚拟环境,进入到项目的虚拟环境就可以了
安装:
pip3 install pipenv
创建项目文件夹,在项目目录下执行:
pipenv --python 3.6
pipenv 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 graph
Django==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=~/.pyenv
export 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.sh
source /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 ~]# workon
py2
py3
切换到虚拟环境
[root@localhost ~]# workon py3
退出虚拟环境
(py3) [root@localhost ~]# deactivate
[root@localhost ~]#
删除虚拟环境
rmvirtualenv venv