鉴于virtualenv不便于对虚拟环境集中管理,所以推荐直接使用virtualenvwrapper。 virtualenvwrapper提供了一系列命令使得和虚拟环境工作变得便利。它把你所有的虚拟环境都放在一个地方。

python 开发的项目,放到线上服务器运行。那么服务器系统,必然是Linux系统。因为Linux的性能优于windows系统。

由于线上项目使用的Django项目版本不同。早几年前的的项目还是1.x版本,现在新写的项目,是2.x版本。那么对于一台服务器,只能有一个python版本。也就对应着,只有一个Django版本。

这个时候,就需要使用virtualenvwrapper了。

确保virtualenv已安装

如果出现以上信息,说明要安装openssl

yum install -y openssl openssl-devel

yum clean all

再次执行命令pip3 install virtualenv,发现还是同样的问题。

查阅资料发现,在./configure过程中,如果没有加上–with-ssl参数时,默认安装的软件涉及到ssl的功能不可用,刚好pip3过程需要ssl模块,而由于没有指定,所以该功能不可用。

解决办法是重新对python3.6进行编译安装,用一下过程来实现编译安装:

再次执行安装命令,就可以了

pip3 install virtualenv

提示以下信息:

升级pip

安装virtualenvwrapper

pip3 install virtualenvwrapper

linux还需要安装一个包,否则找不到virtualenvwrapper.sh文件

yum install python-virtualenv -y

首选找到对应的virtualenvwrapper.sh文件的路径:

创建虚拟环境目录

mkdir /virtualenvs

找到路径之后在/etc/profile中进行配置:

vim /etc/profile

第一行:virtualenvwrapper存放虚拟环境目录

第二行:virtrualenvwrapper会安装到python的bin目录下,所以该路径是python安装目录下

读入配置文件,立即生效

如果运行报错,如下:

请确保python版本为3.6。如何将系统的python版本替换为3.6,请参考文章

virtualenvwrapper基本使用

1.创建虚拟环境 mkvirtualenv

cd /virtualenvs

mkvirtualenv venv1

这样会在WORKON_HOME变量指定的目录下新建名为venv的虚拟环境。

若想指定python版本,可通过"--python"指定python解释器

上面这一步不需要执行,python默认已经更改为3.6了

2.基本命令  

查看当前的虚拟环境目录

切换到虚拟环境

语法:workon 虚拟目录名

退出虚拟环境

删除虚拟环境

下面开始创建2个虚拟目录,分别来安装2个django版本。

配置pip更新源,因为国外的速度太慢了。改为国内豆瓣源

添加内容如下:

创建2个虚拟目录,直接在根目录执行也可以

mkvirtualenv venv1

安装django,指定版本为1.8

创建项目

进入虚拟目录

cd /virtualenvs/venv1/

创建站点mysite

django-admin startproject mysite

创建应用blog

cd mysite/

python manage.py startapp blog

提示报错:

django.core.exceptions.ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that order): No module named '_sqlite3'

安装sqlite所有组件

yum install sqlite*

再次对Python3.6进行重新编译

切换到虚拟环境venv1,重启创建blog。并启动项目!

访问页面,哦!不对。这是Linux,不能直接用127.0.0.1

重新启动,监听本机的所有IP地址。

使用内网IP加端口访问即可!

使用xhell复制一个ssh窗口,创建虚拟目录venv2

mkvirtualenv venv2

#安装最新版diango

pip3 install django

进入虚拟目录

cd /virtualenvs/venv2/

创建站点mysite

django-admin startproject mysite

创建应用blog

cd mysite/

python manage.py startapp blog

启动项目

python manage.py runserver 0.0.0.0:8001

使用内网IP加端口,注意端口是8001

提示IP不允许

进入mysite目录,修改settings.py

增加*,表示允许所有IP。注意,要有一个引号

再次启动应用,访问url

网页效果如下: