Python Virtualenv運行Django環境配置


系統:
RHEL6.5
版本說明:
Python-3.5.0
Django-1.10.4
virtualenv:為每個項目建立不同的/獨立的Python環境,你將為每個項目安裝所有需要的軟件包到它們各自獨立的環境中。

python virtualenv運行django環境配置

安裝python3.5

  1. 安裝依賴包
yum install openssl-devel gcc zlib -y
  1. 下載python3.5安裝包
wget http://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz
  1. 編譯 安裝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了,自動安裝

  1. 修改版本
    將舊版本備份:
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
  1. 驗證
[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並創建運行環境

  1. 安裝
pip install virtualenv
  1. 創建運行環境
[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.
  1. 運行
[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應用

  1. 試運行
(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這個模塊

  1. 退出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即可,但之前的版本則需要兩個都安裝,否則會報錯

  1. 再次運行測試
[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!

########本文為原創,轉載請注明出處


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM