Python Virtualenv运行Django环境配置
系统:
RHEL6.5
版本说明:
Python-3.5.0
Django-1.10.4
virtualenv:为每个项目建立不同的/独立的Python环境,你将为每个项目安装所有需要的软件包到它们各自独立的环境中。
python virtualenv运行django环境配置
安装python3.5
- 安装依赖包
yum install openssl-devel gcc zlib -y
- 下载python3.5安装包
wget http://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz
- 编译 安装python3.5
编译之前新建目录,以免覆盖旧版本:
mkdir /usr/local/python3
解压编译安装:
tar -xzvf Python-3.5.0.tgz
cd Python-3.5.0
./configure --prefix=/usr/local/python3
make && make install
安装完后面会显示:
......
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-7.1.2 setuptools-18.2
在3.5里面,就不用再手动去安装pip和setuptools了,自动安装
- 修改版本
将旧版本备份:
mv /usr/bin/python /usr/bin/python2
建立新版本的python链接和pip链接:
ln -s /usr/local/python3/bin/python3 /usr/bin/python
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
- 验证
[root@django2 ~]# python -V
Python 3.5.0
引发的问题
yum使用报错:
[root@django2 ~]# yum install vim -y
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax
解决方案
修改/usr/bin/yum
第一行如下:
#!/usr/bin/python2
安装virtualenv并创建运行环境
- 安装
pip install virtualenv
- 创建运行环境
[root@django2 ~]# virtualenv ~/pythonproject/virtualenv/blog --no-site-packages
Using base prefix '/usr/local/python3'
New python executable in /root/pythonproject/virtualenv/blog/bin/python3.5
Also creating executable in /root/pythonproject/virtualenv/blog/bin/python
Installing setuptools, pip, wheel...done.
- 运行
[root@django2 bin]# pwd
/root/pythonproject/virtualenv/blog/bin
[root@django2 bin]# source activate
(blog) [root@django2 bin]#
出现前面的(blog)则运行成功!
安装django
- pip安装django最新版本
(blog) [root@django2 ~]# pip install django
创建django应用
- 进入virtualenv建立的环境创建项目与应用:
(blog) [root@django2 blog]# pwd
/root/pythonproject/virtualenv/blog
(blog) [root@django2 blog]# django-admin startproject cherry04
(blog) [root@django2 blog]# cd cherry04/
(blog) [root@django2 cherry04]# django-admin startapp blog
cherry04:项目名
blog:应用名
运行django应用
- 试运行
(blog) [root@django2 cherry04]# python manage.py runserver
.......
File "/root/pythonproject/virtualenv/blog/lib/python3.5/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/root/pythonproject/virtualenv/blog/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py", line 39, in <module>
raise ImproperlyConfigured("Error loading either pysqlite2 or sqlite3 modules (tried in that order): %s" % exc)
django.core.exceptions.ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that order): No module named '_sqlite3'
出现如上报错,没有sqlite3这个模块
- 退出virtualenv环境,安装sqlite3模块
(blog)[root@django2 bin]# pwd
/root/pythonproject/virtualenv/blog/bin
(blog) [root@django2 bin]# deactivate
[root@django2 Python-3.5.0]# pwd
/root/Python-3.5.0
[root@django2 Python-3.5.0]# ./configure --prefix=/usr/local/python3
[root@django2 Python-3.5.0]# make && make install
这个错误如果能在一开始避免最好,后面就不用再重新编译安装了
注:
sqlite
:是非常著名的开源嵌入式数据库软件,它可以嵌入到其他程序中使用,并且提供SQL接口用来查询,非常方便
pysqlite
: 是一个 sqlite 为 Python 提供的 api 接口,它让一切对于 sqlite 的操作都变得异常简单
但是从python2.5版本以后,pysqlite就已经被包含到标准库中,只需要安装sqlite3即可,但之前的版本则需要两个都安装,否则会报错
- 再次运行测试
[root@django2 bin]# pwd
/root/pythonproject/virtualenv/blog/bin
[root@django2 bin]# source activate
(blog) [root@django2 cherry04]# python manage.py runserver
Performing system checks...
System check identified no issues (0 silenced).
You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
December 18, 2016 - 20:43:42
Django version 1.10.4, using settings 'cherry04.settings'
Starting development server at http://127.0.0.1:8000/
- 因为我这里是在虚拟机中配置的,若想在物理机的浏览器中访问,则运行时执行:
python manage.py runserver 0.0.0.0:8000
环境配置至此完成!Good luck!
########本文为原创,转载请注明出处
勿忘初心,放得始终