Win10+Python+Django+Nginx+MySQL開發教程及實例
PaulTsao
本教程共有三篇內容:
第一篇:Win10+Python+Django+Nginx+MySQL 開發環境搭建
第四篇*:創建個人博客
第五篇*:個人博客網站上雲部署並運行
第一篇:Win10+Python+Django+Nginx+MySQL 開發環境搭建
環境及版本:【2018-01】
Windows: Win10 專業版 32位
提醒:強烈建議大家基於64位搭建開發環境,原因以后會懂的。(本人Win10系統32位是從Win732位升上來的,里面有延續的虛擬機環境和幾個工程,難以說換就換)。
Python:Python2.7.14 32bit(x86)
選擇原因:多數Python項目依然沿用此版本,且Windows下目前Python-MySQL只支持Python2.7;推薦采用.msi安裝包進行安裝,只需雙擊執行即可。
Django:Django1.8.18 32bit(x86)
選擇原因:LTS版本,穩定安全。注意:將.zip壓縮包解壓到同一根目錄;解壓后默認是同名雙層目錄,將其歸一,否則絕對路徑同名嵌套很容易輸錯。
MySQL:mysql-5.5.58-win32.msi
搭配成功:5.5是被Oracle收購前版本,開源的小工具較多;推薦采用.msi格式,雙擊運行安裝更方便。
mysql-5.6.38-win32
搭配失敗:本來安裝的是5.6,因為5.6較5.5升級改進了不少特性,且應用認可度更好。只因為5.6無法與Python2.7不能良好搭配,遂改為5.5。
MySQL-python:MySQL-python-1.2.5 ;MySQL Connector C6.0.2;VCForPython27.msi
搭配成功:支持Python2.x,驗證通過;Python3.x,本人尚未驗證;.zip壓縮包解壓到同一根目錄,解壓后默認是同名雙層目錄,將其歸一,否則絕對路徑同名嵌套很容易輸錯。
Nginx:nginx-1.12.2
搭配成功:nginx/Windows-1.12.2,官網stable version版本 。
1. 安裝Python2.7.14
安裝路徑:
D:\Python27 # Python安裝目錄,也是對應系統變量添加路徑
D:\Python27\Scripts # Python腳本目錄,也是對應系統變量添加路徑
注意:必須保證系統環境變量里添加上述兩條路徑,沒有自動添加則手動添加;否則CMD或PowerShell無法調用並執行Python。
檢驗Python是否安裝成功:
管理員身份運行CMD或Power Shell
Python #調用Python
出現以下版本信息即說明安裝成功,如圖:
Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:19:30) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Ctrl+C或exit() #退出Python ,返回PowerShell或CMD命令行
2. 安裝Django-1.8.18
(1)安裝路徑:
D:\Django-1.8.18 # Django 安裝目錄
以管理員身份運行CMD或Power Shell
cd D:\Django-1.8.18 # 進入 Django 目錄 python setup.py install # 執行安裝
(2)檢驗Django安裝是否成功:
cd C: #返回PowerShell或CMD命令行
Python #進入Python
>>> import django #在Python中安裝Django
>>> django.get_version() #顯示Django版本信息則說明安裝成功
Django模塊在Python安裝目錄中的路徑:
D:\Python27\Lib\site-packages\Django-1.8.18-py2.7.egg
(3)運行Python文件,進行測試
在D:\PythonProject目錄下新建test.py文件(txt更改后綴為.py即可),文件中寫入以下兩行代碼:
Print "Hello World " # Python 3.x下為Print ("Hello World ")
Input() # 添加此句是為保持Python處於待輸入狀態,避免雙擊運行test.py文件時閃退而難以觀察結果,也可不添加此句,后面附上對比。
進入test.py文件所在目錄,運行文件,查看結果:
C:\WINDOWS\system32> cd D:\PythonProject
D:\PythonProject> python test.py
hello world
證明Python運行正常。輸入exit ,退出輸入狀態。
提示:在test.py中注釋掉Input() ,則直接執行顯示結果,並退出到D:\PythonProject目錄下。
3. 安裝Nginx-1.12.2
安裝路徑:
nginx-1.12.2.zip解壓到同一根目錄D:\,雙擊執行nginx.exe即進行安裝,路徑默認,不可選擇。
或者進入window的cmd窗口,用cd命令進入到nginx目錄:
start nginx.exe # 進行nginx的安裝
檢驗Nginx安裝是否成功:
瀏覽器地址欄輸入127.0.0.1或localhost,出現“Welcome to Nginx!”即說明安裝成功,如圖:
Nginx相應命令(.exe可以去掉),進入nginx1.12.2安裝目錄后運行:
>nginx.exe -s stop //停止nginx
>nginx.exe -s reload //重新加載nginx
>nginx.exe -s quit //退出nginx
>nginx.exe -s reopen //重新打開日志文件
>nginx –v //查看Nginx版本
注意:
(1)如果Nginx沒有運行成功,則最大可能首先是80端口占用。可以更改Nginx默認端口為81,本文即改為81,如何更改見下文。
(2)或者出現[emery] blind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)報錯,可以以管理員身份運行regedit打開鍵值:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP在右邊找到Start這一項將其改為0,重啟系統則System進程不會再占用80端口。
(3)start nginx 后無報錯,有窗口閃退,一般說明Nginx已經運行正常,查看任務管理器中的進程即可得知。
4. 安裝MySQL-5.5.38
Windows10下,Pyhon2.7貌似搭配MySQL5.5的解決方案才完美,(用5.6安裝無法順利用Python連通MySQL,安裝5.6的試錯教訓放在其后,請后來者品鑒),故換MySQL5.5版本進行安裝。
安裝MySQLServer-5.5以及Configuration Wizard
MySQLServer Root 132456
添加運行程序安裝路徑到環境變量,如圖:
D:\MySQL\MySQLServer-5.5\bin
用CMD或PowerShell驗證MySQL是否安裝成功:
注意:(1)若未將MySql加入環境變量,切換到mysql的安裝目錄下的bin目錄;(2)若已加入環境變量,則不必切換目錄。(本文因之前MySQL5.6影響,已加入環境變量沖突占用變量名稱和路徑,所以需要進入MySQL的bin目錄。)
cd D:\MySQL\MySQLServer-5.5\bin
mysql -h localhost -u root -p
輸入密碼,回車即可
這時說明MySQL5.5在本機Win10系統下配置正確。
查看數據庫內容,以備之后驗證對比:
Show databases; #查看數據庫
Use test; #選擇test數據庫
Show tables; #查看數據庫中的表
查看數據庫:test數據庫中無任何表。
附:Python 3.6.4和MySQl-5.6.38試錯過程
試錯結論:
經本人驗證,Windows10下,Python 3.6.4和MySQl-5.6.38不能有效連通。查詢資料,貌似Windows下Python 2.7才與MySQl-5.5能正常搭配,其他以上版本兩者目前均無法優良穩定協同工作;
提醒注意:
(1)卸載MySQL先進入,用命令備份,再物理拷貝備份,Drop庫表,停止服務,再刪掉安裝目錄,清除注冊表,然后重啟,再清理系統環境變量;
(2)安裝后任何對MySQL的操作,請確保MySQL的“服務”均開啟。
試錯過程:
MySQL-python-1.2.5.zip壓縮包解壓安裝:
C:\WINDOWS\system32> cd D:\MySQL-python-1.2.5
D:\MySQL-python-1.2.5> python setup.py install
提示無此文件,絕對路徑輸錯,為什么?原因是解壓后文件名往往是“雙層的”,將其“復合成”一層問題解決。如下圖:
將解壓文件包的“雙層名稱”歸一為單層后運行正確,但再次提示錯誤:
error: Microsoft Visual C++ 9.0 is required. Get it from http://aka.ms/vcpython27
MS官網下載Microsoft Visual C++ Compiler for Python 2.7,即VCForPython27.msi,雙擊並安裝。
再次 python setup.py install,又報錯:
_mysql.c(42) : fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory
error: command 'C:\\Users\\apollo\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\cl.exe' failed with exit status 2
各種查詢資料並驗證,恍然大悟,原來Windows下Python2.7與MySQL5.6以上搭配並不友好,Python2.7和3.6的已大不相同,關鍵是還需要其他依賴包和工具,如MySQL Connector 等。
參考文獻
[1]. https://www.cnblogs.com/ops-sylar/p/6674644.html
[2]. https://www.cnblogs.com/saysmy/p/6609796.html