Ubuntu环境安装virualenv和virtualenvwrapper

virtualenv是开发Python的抽象,即创建一个存储私有的pytyon,pip,以及其他Python包的目录。通过使用virtual环境,可以使用Python的不同版本以及Python软件包。virtualenv可以在系统中建立多个不同并且相互不干扰的虚拟环境。此外,在 virtualenv 的虚拟环境中使用 pip 安装依赖可以绕过对系统目录权限的限制,构建自己的运行环境。

不过,virtualenv 的一个最大的缺点就是,每次开启虚拟环境之前要去虚拟环境所在目录下的 bin 目录下 source 一下activate,这就需要我们记住每个虚拟环境所在的目录。一种可行的解决方案是,将所有的虚拟环境目录全都集中起来,比如放到 ~/virtualenvs/``,并对不同的虚拟环境使用不同的目录来管理。virtualenvwrapper 正是这样做的。并且,它还省去了每次开启虚拟环境时候的 source 操作,使得虚拟环境更加好用。

安装

sudo apt-get install python-pip python-dev build-essential

sudo pip install virtualenv virtualenvwrapper

sudo pip install --upgrade pip
  • ~/.bashrc中设置virtualenvwrapper

# Create a backup of your .bashrc file
cp ~/.bashrc ~/.bashrc-org

# Be careful with this command
printf '\n%s\n%s\n%s' '# virtualenv' 'export WORKON_HOME=~/virtualenvs' \
'source /usr/local/bin/virtualenvwrapper.sh' >> ~/.bashrc
  • 激活或者退出方法:

source ~/.bashrc

此时会提示virtualenvwrapper.user_scripts创建了对应文件

virtualenvwrapper.user_scripts creating /home/huatai/virtualenvs/premkproject
...
virtualenvwrapper.user_scripts creating /home/huatai/virtualenvs/get_env_details

创建虚拟环境,例如,这里创建虚拟机环境api

mkvirtualenv api

此时会提示在virtualenvs虚拟环境中创建对应项目的虚拟目录

New python executable in /home/huatai/virtualenvs/api/bin/python
Installing setuptools, pip, wheel...done.
virtualenvwrapper.user_scripts creating /home/huatai/virtualenvs/api/bin/predeactivate
...

退出虚拟环境则使用如下命令

# Exit the 'api' virtual environment
deactivate

如果再次激活api虚拟环境,则运行如下命令:

workon api
  • 如果需要删除api虚拟环境,则使用:

rmvirtualenv api

在脚本中使用virtualenvwrapper

在脚本中可以使用virtualenvwrapper构建Python运行环境,运行Python脚本:

#!/bin/bash

source /etc/profile
source /home/huatai/.bashrc

/home/huatai/bin/daily_task.py XXXX

同时可以设置crontab定时运行

0 9 * * * sh /home/huatai/bin/run_daily_task.sh

参考

Last updated