0-python基礎(chǔ)之-環(huán)境搭建

window下安裝


1.安裝python

下載python-3.7.0-amd64.exe,直接下一步安裝,記得勾選Add Python 3.7 to PATH
https://www.python.org/downloads/release/python-370/

2.安裝web server需要的庫(kù)和服務(wù)

1.安裝mysql网沾,查看mysql的安裝教程

安裝完測(cè)試正常后初茶,使用以下命令部署web的后臺(tái)數(shù)據(jù)庫(kù)框架
mysql -u root -p < schema.sql

2.pip3 install jinja2 aiomysql aiohttp

3.安裝pyCharm64

win上面開(kāi)發(fā)一定要有集成開(kāi)發(fā)環(huán)境,使用pyCharm很方便所踊。

下載專業(yè)版祝高,進(jìn)行破解,這樣就可以寫css,js的代碼了
https://blog.csdn.net/u014044812/article/details/78727496

K71U8DBPNE-eyJsaWNlbnNlSWQiOiJLNzFVOERCUE5FIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IkZvciBlZHVjYXRpb25hbCB1c2Ugb25seSIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiSUkiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJSUzAiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJXUyIsInBhaWRVcFRvIjoiMjAxOS0wNS0wNCJ9LHsiY29kZSI6IlJEIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiUkMiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJEQyIsInBhaWRVcFRvIjoiMjAxOS0wNS0wNCJ9LHsiY29kZSI6IkRCIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiUk0iLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJETSIsInBhaWRVcFRvIjoiMjAxOS0wNS0wNCJ9LHsiY29kZSI6IkFDIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiRFBOIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiR08iLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJQUyIsInBhaWRVcFRvIjoiMjAxOS0wNS0wNCJ9LHsiY29kZSI6IkNMIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiUEMiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJSU1UiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifV0sImhhc2giOiI4OTA4Mjg5LzAiLCJncmFjZVBlcmlvZERheXMiOjAsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZX0=-Owt3/+LdCpedvF0eQ8635yYt0+ZLtCfIHOKzSrx5hBtbKGYRPFDrdgQAK6lJjexl2emLBcUq729K1+ukY9Js0nx1NH09l9Rw4c7k9wUksLl6RWx7Hcdcma1AHolfSp79NynSMZzQQLFohNyjD+dXfXM5GYd2OTHya0zYjTNMmAJuuRsapJMP9F1z7UTpMpLMxS/JaCWdyX6qIs+funJdPF7bjzYAQBvtbz+6SANBgN36gG1B2xHhccTn6WE8vagwwSNuM70egpahcTktoHxI7uS1JGN9gKAr6nbp+8DbFz3a2wd+XoF3nSJb/d2f/6zJR8yJF8AOyb30kwg3zf5cWw==-MIIEPjCCAiagAwIBAgIBBTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE1MTEwMjA4MjE0OFoXDTE4MTEwMTA4MjE0OFowETEPMA0GA1UEAwwGcHJvZDN5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxcQkq+zdxlR2mmRYBPzGbUNdMN6OaXiXzxIWtMEkrJMO/5oUfQJbLLuMSMK0QHFmaI37WShyxZcfRCidwXjot4zmNBKnlyHodDij/78TmVqFl8nOeD5+07B8VEaIu7c3E1N+e1doC6wht4I4+IEmtsPAdoaj5WCQVQbrI8KeT8M9VcBIWX7fD0fhexfg3ZRt0xqwMcXGNp3DdJHiO0rCdU+Itv7EmtnSVq9jBG1usMSFvMowR25mju2JcPFp1+I4ZI+FqgR8gyG8oiNDyNEoAbsR3lOpI7grUYSvkB/xVy/VoklPCK2h0f0GJxFjnye8NT1PAywoyl7RmiAVRE/EKwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBggkA0myxg7KDeeEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWgMA0GCSqGSIb3DQEBCwUAA4ICAQC9WZuYgQedSuOc5TOUSrRigMw4/+wuC5EtZBfvdl4HT/8vzMW/oUlIP4YCvA0XKyBaCJ2iX+ZCDKoPfiYXiaSiH+HxAPV6J79vvouxKrWg2XV6ShFtPLP+0gPdGq3x9R3+kJbmAm8w+FOdlWqAfJrLvpzMGNeDU14YGXiZ9bVzmIQbwrBA+c/F4tlK/DV07dsNExihqFoibnqDiVNTGombaU2dDup2gwKdL81ua8EIcGNExHe82kjF4zwfadHk3bQVvbfdAwxcDy4xBjs3L4raPLU3yenSzr/OEur1+jfOxnQSmEcMXKXgrAQ9U55gwjcOFKrgOxEdek/Sk1VfOjvS+nuM4eyEruFMfaZHzoQiuw4IqgGc45ohFH0UUyjYcuFxxDSU9lMCv8qdHKm+wnPRb0l9l5vXsCBDuhAGYD6ss+Ga+aDY6f/qXZuUCEUOH3QUNbbCUlviSz6+GiRnt1kA9N2Qachl+2yBfaqUqr8h7Z2gsx5LcIf5kYNsqJ0GavXTVyWh7PYiKX4bs354ZQLUwwa/cG++2+wNWP+HtBhVxMRNTdVhSm38AknZlD+PTAsWGu9GyLmhti2EnVwGybSD2Dxmhxk3IPCkhKAK+pl0eWYGZWG3tJ9mZ7SowcXLWDFAk0lRJnKGFMTggrWjV8GYpw5bq23VmIqqDLgkNzuoog==

Centos下安裝


1.安裝python

編譯時(shí)要提前裝好gcc編譯器和zlib zlib-devel

下載Python安裝包

cd /usr/local/src
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz

2污筷、解壓

tar -zxvf Python-3.7.0.tgz

3工闺、編譯安裝包

cd Python-3.7.0
./configure --prefix=/usr/local/python
make && make install

4乍赫、添加環(huán)境變量

#echo PATH='/usr/local/python/bin/:$PATH' >> /etc/profile
<br>#source /etc/profile

有時(shí)候會(huì)出現(xiàn)如下錯(cuò)誤

ModuleNotFoundError: No module named '_ctypes'

安裝如下即可:

yum install libffi-devel -y

5.檢查是否成功,執(zhí)行下面代碼

python3.7
Python 3.7.0 (default, Nov 27 2018, 10:35:54)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
2.修改默認(rèn)python版本(這一步可能不需要陆蟆,因?yàn)闀?huì)導(dǎo)致supervisorctl啟動(dòng)不了雷厂,supervisorctl只能要python2上面跑)

1.查看默認(rèn)python版本是2.7.5

python
Python 2.7.5 (default, Jul 13 2018, 13:06:57)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

2.修改系統(tǒng)默認(rèn)的Python路徑,因?yàn)樵诮K端中輸入Python命令時(shí)默認(rèn)是指向Python2.7.5

mv /usr/bin/python /usr/bin/python-2.7.5
``` 

3.建立新的軟連接叠殷,指向Python-3.7.0  

ln -s /usr/local/python/bin/python3.7 /usr/bin/python
 ```

4.打開(kāi)一個(gè)新的終端改鲫,通過(guò)python命令進(jìn)入python環(huán)境,可以看到已經(jīng)指向了我們新安裝的python3.7.0:

python
Python 3.7.0 (default, Nov 27 2018, 10:35:54)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print("test")
test
>>> exit()

5.改完默認(rèn)python后發(fā)現(xiàn)使用yum安裝時(shí)出錯(cuò)

 yum install openssh-server
  File "/usr/bin/yum", line 30
    except KeyboardInterrupt, e:
                            ^
SyntaxError: invalid syntax

6.因?yàn)閥um是依賴python的林束,所以這里我們修改了默認(rèn)的python,就要要修改yum像棘,讓其運(yùn)行指向舊的版本:

vi /usr/bin/yum   

將第一行中的“#!/usr/bin/python”   
修改為“#!/usr/bin/python-2.7.5”
保存即可

7.如果出現(xiàn)別的錯(cuò)誤的時(shí)候有可以需要修改一下兩個(gè)文件

yum install tree
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package tree.x86_64 0:1.6.0-10.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================
 Package                Arch                     Version                        Repository              Size
=============================================================================================================
Installing:
 tree                   x86_64                   1.6.0-10.el7                   base                    46 k

Transaction Summary
=============================================================================================================
Install  1 Package

Total download size: 46 k
Installed size: 87 k
Is this ok [y/d/N]: y
Downloading packages:
  File "/usr/libexec/urlgrabber-ext-down", line 28
    except OSError, e:
                  ^
SyntaxError: invalid syntax


Exiting on user cancel

1. vim /usr/libexec/urlgrabber-ext-down

將/usr/bin/python改為/usr/bin/python-2.7.5。

2. vim /usr/bin/yum-config-manager

解決辦法同上: #!/usr/bin/python換成 #!/usr/bin/python-2.7.5 
3.安裝web server需要的庫(kù)和服務(wù)

1.安裝mysql壶冒,查看mysql的安裝教程

安裝完測(cè)試正常后缕题,使用以下命令部署web的后臺(tái)數(shù)據(jù)庫(kù)框架
mysql -u root -p < schema.sql

2.pip3 install jinja2 aiomysql aiohttp

3.yum install openssh-server nginx supervisor dos2unix

這邊用到下面兩個(gè)工具

  • 1.Supervisor:監(jiān)控服務(wù)進(jìn)程的工具;

該工具的主要目的就是使用Supervisor來(lái)啟動(dòng)我們的app.py進(jìn)程胖腾,這樣app.py進(jìn)程出現(xiàn)問(wèn)題時(shí)就會(huì)被保存日志重啟等烟零。

使用echo_supervisord_conf產(chǎn)生默認(rèn)配置文件,保存在supervisord.conf里面

echo_supervisord_conf > /etc/supervisord.conf

修改/etc/supervisord.conf的最后兩行

[include]
files = /etc/supervisord.d/*.conf

在/etc/supervisord.d/里面添加配置文件awesome.conf

[program:awesome]
command     = /srv/awesome/www/app.py
directory   = /srv/awesome/www
user        = root
startsecs   = 3
redirect_stderr         = true
stdout_logfile_maxbytes = 50MB
stdout_logfile_backups  = 10
stdout_logfile          = /srv/awesome/log/app.log

查看要運(yùn)行的www屬于誰(shuí)的權(quán)限咸作,就將上面awesome.conf里面的user配置成誰(shuí)

[root@centos awesome]# ls -l
total 24
drwxr-xr-x 2 root root 4096 Nov 27 17:23 log
lrwxrwxrwx 1 root root   21 Nov 27 16:56 www -> www-18-11-27_16.56.28
drwxr-xr-x 4 root root 4096 Nov 27 16:09 www-18-11-27_16.08.59
drwxr-xr-x 4 root root 4096 Nov 27 16:26 www-18-11-27_16.26.12
drwxr-xr-x 4 root root 4096 Nov 27 16:28 www-18-11-27_16.28.37
drwxr-xr-x 4 root root 4096 Nov 27 16:53 www-18-11-27_16.53.41
drwxr-xr-x 5 root root 4096 Nov 27 17:11 www-18-11-27_16.56.28

參考:https://www.cnblogs.com/wswang/p/5795766.html

supervisorctl stop program_name  # 停止某一個(gè)進(jìn)程锨阿,program_name 為 [program:x] 里的 x

supervisorctl start program_name  # 啟動(dòng)某個(gè)進(jìn)程

supervisorctl restart program_name  # 重啟某個(gè)進(jìn)程

supervisorctl stop groupworker:  # 結(jié)束所有屬于名為 groupworker 這個(gè)分組的進(jìn)程 (start,restart 同理)

supervisorctl stop groupworker:name1  # 結(jié)束 groupworker:name1 這個(gè)進(jìn)程 (start记罚,restart 同理)

supervisorctl stop all  # 停止全部進(jìn)程墅诡,注:start、restartUnlinking stale socket /tmp/supervisor.sock
桐智、stop 都不會(huì)載入最新的配置文件

supervisorctl reload  # 載入最新的配置文件书斜,停止原有進(jìn)程并按新的配置啟動(dòng)、管理所有進(jìn)程

supervisorctl update  # 根據(jù)最新的配置文件酵使,啟動(dòng)新配置或有改動(dòng)的進(jìn)程荐吉,配置沒(méi)有改動(dòng)的進(jìn)程不會(huì)受影響而重啟
[root@centos awesome]# supervisorctl stop awesome
awesome: stopped
[root@centos awesome]# supervisorctl start awesome
awesome: started
[root@centos awesome]# supervisorctl status
awesome                          RUNNING   pid 30182, uptime 0:00:13

測(cè)試下supervisord進(jìn)程是否生效,找到app.py的進(jìn)程kill掉口渔,可以發(fā)現(xiàn)出現(xiàn)了一個(gè)新id的app.py進(jìn)程

[root@centos awesome]# ps -aux | grep python
root     11340  0.0  1.4 573812 14660 ?        Ssl  Nov23   0:39 /usr/bin/python -Es /usr/sbin/tuned -l -P
root     30161  0.0  1.6 225936 17072 ?        Ss   17:23   0:00 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf
root     30182  0.0  2.6 250196 26612 ?        S    17:28   0:00 python3 /srv/awesome/www/app.py
root     30350  0.0  0.0 112704   972 pts/0    R+   18:00   0:00 grep --color=auto python
[root@centos awesome]# kill 30182
[root@centos awesome]# ps -aux | grep python
root     11340  0.0  1.4 573812 14660 ?        Ssl  Nov23   0:39 /usr/bin/python -Es /usr/sbin/tuned -l -P
root     30161  0.0  1.6 225936 17068 ?        Ss   17:23   0:00 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf
root     30364  0.0  2.6 249844 26440 ?        S    18:01   0:00 python3 /srv/awesome/www/app.py
root     30366  0.0  0.0 112704   976 pts/0    R+   18:01   0:00 grep --color=auto python


  • 2.Nginx:高性能Web服務(wù)器+負(fù)責(zé)反向代理样屠;

利用Python自帶的asyncio,我們已經(jīng)編寫了一個(gè)異步高性能服務(wù)器缺脉。但是痪欲,我們還需要一個(gè)高性能的Web服務(wù)器,這里選擇Nginx攻礼,它可以處理靜態(tài)資源业踢,同時(shí)作為反向代理把動(dòng)態(tài)請(qǐng)求交給Python代碼處理

動(dòng)靜結(jié)合,我們的python服務(wù)器屬于動(dòng)態(tài)的礁扮,會(huì)修改知举;Nginx屬于靜態(tài)的瞬沦,為代理作用,更加安全雇锡,比如python服務(wù)器出現(xiàn)問(wèn)題是逛钻,不會(huì)因?yàn)槭韬龆裠ebug信息直接輸出給客戶端,這時(shí)候就有Nginx服務(wù)器直接返回502錯(cuò)誤給客戶端锰提。

[圖片上傳失敗...(image-a12c23-1581845045050)]

[root@centos ~]# ps -aux | grep nginx
root       737  0.0  0.0 112704   968 pts/0    S+   10:00   0:00 grep --color=auto nginx
root     30865  0.0  0.2 120792  2100 ?        Ss   Nov27   0:00 nginx: master process nginx
nginx    30866  0.0  0.3 121180  3584 ?        S    Nov27   0:00 nginx: worker process

systemctl restart nginx.service/service nginx restart

systemctl stop nginx.service/service nginx stop

systemctl start nginx.service/service nginx start

systemctl status nginx.service/service nginx status

在阿里云服務(wù)器上由于沒(méi)有界面也不知道nginx是否正常啟動(dòng)曙痘,這時(shí)候可以使用curl去過(guò)去網(wǎng)頁(yè)內(nèi)容,然后再?gòu)?fù)制出來(lái)到win上面看html頁(yè)面是否顯示正常立肘。

如下:

[root@centos nginx]# curl http://127.0.0.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
        <title>Test Page for the Nginx HTTP Server on Fedora</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <style type="text/css">
            /*<![CDATA[*/
            body {
                background-color: #fff;
                color: #000;
                font-size: 0.9em;
                font-family: sans-serif,helvetica;
                margin: 0;
                padding: 0;
            }
            :link {
                color: #c00;
            }
            :visited {
                color: #c00;
            }
            a:hover {
                color: #f50;
            }
            h1 {
                text-align: center;
                margin: 0;
                padding: 0.6em 2em 0.4em;
                background-color: #294172;
                color: #fff;
                font-weight: normal;
                font-size: 1.75em;
                border-bottom: 2px solid #000;
            }
            h1 strong {
                font-weight: bold;
                font-size: 1.5em;
            }
            h2 {
                text-align: center;
                background-color: #3C6EB4;
                font-size: 1.1em;
                font-weight: bold;
                color: #fff;
                margin: 0;
                padding: 0.5em;
                border-bottom: 2px solid #294172;
            }
            hr {
                display: none;
            }
            .content {
                padding: 1em 5em;
            }
            .alert {
                border: 2px solid #000;
            }

            img {
                border: 2px solid #fff;
                padding: 2px;
                margin: 2px;
            }
            a:hover img {
                border: 2px solid #294172;
            }
            .logos {
                margin: 1em;
                text-align: center;
            }
            /*]]>*/
        </style>
    </head>

    <body>
        <h1>Welcome to <strong>nginx</strong> on Fedora!</h1>

        <div class="content">
            <p>This page is used to test the proper operation of the
            <strong>nginx</strong> HTTP server after it has been
            installed. If you can read this page, it means that the
            web server installed at this site is working
            properly.</p>

            <div class="alert">
                <h2>Website Administrator</h2>
                <div class="content">
                    <p>This is the default <tt>index.html</tt> page that
                    is distributed with <strong>nginx</strong> on
                    Fedora.  It is located in
                    <tt>/usr/share/nginx/html</tt>.</p>

                    <p>You should now put your content in a location of
                    your choice and edit the <tt>root</tt> configuration
                    directive in the <strong>nginx</strong>
                    configuration file
                    <tt>/etc/nginx/nginx.conf</tt>.</p>

                </div>
            </div>

            <div class="logos">
                <a ><img
                    src="nginx-logo.png"
                    alt="[ Powered by nginx ]"
                    width="121" height="32" /></a>

                <a ><img
                    src="poweredby.png"
                    alt="[ Powered by Fedora ]"
                    width="88" height="31" /></a>
            </div>
        </div>
    </body>
</html>

如果在本機(jī)可以正常訪問(wèn)边坤,外網(wǎng)不能訪問(wèn)的時(shí)候,需要看下阿里云上面的安全組配置谅年,是否有開(kāi)放80端口茧痒,443端口。

https://blog.csdn.net/lzl18918615216/article/details/80049471

https://helpcdn.aliyun.com/document_detail/25471.html

如果還是不行可能需要配置防火墻規(guī)則踢故。

https://blog.csdn.net/lzl18918615216/article/details/80049471

Ubuntu下安裝


1.安裝python

1文黎、apt-get upgrade

2惹苗、apt-get update

直接安裝python3.5吧殿较,發(fā)現(xiàn)3.6下安裝distribute有問(wèn)題

3、apt-get install python3.6

4桩蓉、apt-get install python3.6-dev

ubuntu默認(rèn)已經(jīng)安裝了python3.4

root@ubuntu:/usr/bin# python3 -V
Python 3.4.3

所以我們需要把默認(rèn)的改成python3.6

設(shè)置python的默認(rèn)版本:

root@ubuntu:/usr/bin# update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
update-alternatives: using /usr/bin/python2.7 to provide /usr/bin/python (python) in auto mode
root@ubuntu:/usr/bin# update-alternatives --list python
/usr/bin/python2.7
root@ubuntu:/usr/bin# python -V
Python 2.7.6

設(shè)置python3的默認(rèn)版

root@ubuntu:/usr/bin# update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
update-alternatives: using /usr/bin/python3.6 to provide /usr/bin/python3 (python3) in auto mode
root@ubuntu:/usr/bin# update-alternatives --list python3
/usr/bin/python3.6
root@ubuntu:/usr/bin# python3 -V
Python 3.6.2

5淋纲、設(shè)置pip:

  • apt-get install python3-pip    # Python3
  • apt-get install python-pip     # Python2

6、查看pip3 -V

root@ubuntu:/usr/bin# pip3
Traceback (most recent call last):
  File "/usr/bin/pip3", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 1479, in <module>
    register_loader_type(importlib_bootstrap.SourceFileLoader, DefaultProvider)
AttributeError: module 'importlib._bootstrap' has no attribute 'SourceFileLoader'

AttributeError:module 'importlib._bootstrap' has no attribute 'SourceFileLoader'院究。

最后發(fā)現(xiàn):distribute只能安裝在python 3.5.x版本洽瞬。

7、安裝apt-get install python3业汰、apt-get install python3.5-dev切換到3.5

root@ubuntu:/usr/bin# update-alternatives --config python3
There are 2 choices for the alternative python3 (providing /usr/bin/python3).

  Selection    Path                Priority   Status
------------------------------------------------------------
  0            /usr/bin/python3.6   1         auto mode
  1            /usr/bin/python3.5   1         manual mode
* 2            /usr/bin/python3.6   1         manual mode

Press enter to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/bin/python3.5 to provide /usr/bin/python3 (python3) in manual mode
root@ubuntu:/usr/bin# pip3 -V
pip 1.5.4 from /usr/lib/python3/dist-packages (python 3.5)

8伙窃、更新pip3

pip3 install --upgrade setuptools
2.安裝web server需要的庫(kù)和服務(wù)

1.安裝mysql,查看mysql的安裝教程

安裝完測(cè)試正常后样漆,使用以下命令部署web的后臺(tái)數(shù)據(jù)庫(kù)框架
mysql -u root -p < schema.sql

2.pip3 install jinja2 aiomysql aiohttp

pip3 install idna_ssl cryptography

3.apt-get install libssl-dev openssh-server nginx supervisor dos2unix

4.配置Supervisor:監(jiān)控服務(wù)進(jìn)程的工具

編寫一個(gè)Supervisor的配置文件awesome.conf为障,存放到/etc/supervisor/conf.d/目錄下:

[program:awesome]

command     = /srv/awesome/www/app.py
directory   = /srv/awesome/www
user        = root
startsecs   = 3

redirect_stderr         = true
stdout_logfile_maxbytes = 50MB
stdout_logfile_backups  = 10
stdout_logfile          = /srv/awesome/log/app.log

在srv下面創(chuàng)建awesome文件夾。

使用fabfile_win.py將項(xiàng)目同步到ubuntu,記得修改ip和用戶名放祟。

env.user = 'linye'
env.sudo_user = 'root'
# env.hosts = ['123.123.123.123']
env.host_string = '192.168.61.128' # 改成你的服務(wù)器ip

創(chuàng)建/srv/awesome/log/文件夾

service supervisor start

出現(xiàn)unix:///var/run/supervisor.sock no such file是就自己創(chuàng)建一個(gè)鳍怨,并附權(quán)限

touch /var/run/supervisor.sock
chmod 777 /var/run/supervisor.sock

5.Nginx:高性能Web服務(wù)器+負(fù)責(zé)反向代理;

/etc/nginx/sites-available/default里面的內(nèi)容改成如下:

server {
    listen      80; # 監(jiān)聽(tīng)80端口

    root       /srv/awesome/www;
    access_log /srv/awesome/log/access_log;
    error_log  /srv/awesome/log/error_log;

    # server_name awesome.liaoxuefeng.com; # 配置域名

    # 處理靜態(tài)文件/favicon.ico:
    location /favicon.ico {
        root /srv/awesome/www;
    }

    # 處理靜態(tài)資源:
    location ~ ^\/static\/.*$ {
        root /srv/awesome/www;
    }

    # 動(dòng)態(tài)請(qǐng)求轉(zhuǎn)發(fā)到9000端口:
    location / {
        proxy_pass       http://127.0.0.1:9000;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

/etc/init.d/nginx reload

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末跪妥,一起剝皮案震驚了整個(gè)濱河市鞋喇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌眉撵,老刑警劉巖侦香,帶你破解...
    沈念sama閱讀 218,640評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件落塑,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡鄙皇,警方通過(guò)查閱死者的電腦和手機(jī)芜赌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)伴逸,“玉大人缠沈,你說(shuō)我怎么就攤上這事〈砗” “怎么了洲愤?”我有些...
    開(kāi)封第一講書人閱讀 165,011評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)顷锰。 經(jīng)常有香客問(wèn)我柬赐,道長(zhǎng),這世上最難降的妖魔是什么官紫? 我笑而不...
    開(kāi)封第一講書人閱讀 58,755評(píng)論 1 294
  • 正文 為了忘掉前任肛宋,我火速辦了婚禮,結(jié)果婚禮上束世,老公的妹妹穿的比我還像新娘酝陈。我一直安慰自己,他們只是感情好毁涉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布沉帮。 她就那樣靜靜地躺著,像睡著了一般贫堰。 火紅的嫁衣襯著肌膚如雪穆壕。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,610評(píng)論 1 305
  • 那天其屏,我揣著相機(jī)與錄音喇勋,去河邊找鬼。 笑死偎行,一個(gè)胖子當(dāng)著我的面吹牛川背,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播睦优,決...
    沈念sama閱讀 40,352評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼渗常,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了汗盘?” 一聲冷哼從身側(cè)響起皱碘,我...
    開(kāi)封第一講書人閱讀 39,257評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎隐孽,沒(méi)想到半個(gè)月后癌椿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體健蕊,經(jīng)...
    沈念sama閱讀 45,717評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評(píng)論 3 336
  • 正文 我和宋清朗相戀三年踢俄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了缩功。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,021評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡都办,死狀恐怖嫡锌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情琳钉,我是刑警寧澤势木,帶...
    沈念sama閱讀 35,735評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站歌懒,受9級(jí)特大地震影響啦桌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜及皂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評(píng)論 3 330
  • 文/蒙蒙 一甫男、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧验烧,春花似錦板驳、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,936評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)效扫。三九已至倔监,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間菌仁,已是汗流浹背浩习。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,054評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留济丘,地道東北人谱秽。 一個(gè)月前我還...
    沈念sama閱讀 48,224評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像摹迷,于是被迫代替她去往敵國(guó)和親疟赊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容