系統:
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!
########本文為原創,轉載請注明出處