真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何在linux服務(wù)器中部署一個(gè)python項(xiàng)目-創(chuàng)新互聯(lián)

如何在linux服務(wù)器中部署一個(gè)python項(xiàng)目?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

10年積累的網(wǎng)站制作、成都網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有華安免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

最近用Python寫了個(gè)外掛,需要部署到Linux環(huán)境的服務(wù)器上,由于之前本地開發(fā)時(shí)使用virtualenv,使用這個(gè)虛擬環(huán)境有個(gè)好處是項(xiàng)目中依賴的庫(kù)不會(huì)是全局的,只在當(dāng)前項(xiàng)目的目錄下有效,因?yàn)槲沂荕ac系統(tǒng),virtualenv環(huán)境下的庫(kù)文件和linux上所需要的庫(kù)不通用,所以不能簡(jiǎn)單的將整個(gè)env拷貝到服務(wù)器運(yùn)行,需要做一些額外的工作。

一般每個(gè)不同的項(xiàng)目都會(huì)依賴各自的庫(kù),有些庫(kù)的版本不一樣會(huì)引起沖突,為了解決這個(gè)問(wèn)題,需要使用虛擬環(huán)境,Python可以在每個(gè)項(xiàng)目目錄下創(chuàng)建各自的虛擬環(huán)境,項(xiàng)目所依賴的包就在環(huán)境目錄下,這樣避免了庫(kù)版本的沖突,也方便相同操作系統(tǒng)間可以快速的拷貝項(xiàng)目運(yùn)行。

我使用的是Python3編寫的項(xiàng)目,CentOS 7的服務(wù)器上只有Python2,所以需要先安裝一下Python3的環(huán)境

第一步:安裝Python3環(huán)境
1.首先安裝編譯環(huán)境(后續(xù)需要從python官網(wǎng)獲取Python3的源碼自己編譯python)

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

2.從官網(wǎng)下載python3的源碼

wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz

3.依次執(zhí)行 解壓>進(jìn)入解壓后的目錄>編譯安裝

tar -xvJf Python-3.6.2.tar.xz
cd Python-3.6.2
./configure prefix=/usr/local/python3
make && make install

4.安裝完畢,創(chuàng)建軟連接

ln -s /usr/local/python3/bin/python3 /usr/bin/python
# 執(zhí)行命令
python -V #將會(huì)看到python3的版本
# 執(zhí)行命令
python2 -V #將會(huì)看到python2的版本

5.后續(xù)工作,由于執(zhí)行CentOS的yum命令需要使用自帶的python2的版本,所以需要做兩處修改

vim /usr/bin/yum
vim /usr/libexec/urlgrabber-ext-down
#將 這兩個(gè)文件的 #! /usr/bin/python修改為 #! /usr/bin/python2

第二步:將本地開發(fā)環(huán)境的依賴項(xiàng)目生成清單文件
1.在本地的開發(fā)環(huán)境中,env下執(zhí)行:

pip3 freeze >requirements.txt

清單文件將會(huì)生成在當(dāng)前項(xiàng)目目錄下,內(nèi)容如下所示

certifi==2018.4.16
chardet==3.0.4
idna==2.7
requests==2.19.1
urllib3==1.23

將生成后的文件上傳到linux服務(wù)器

2.將Python項(xiàng)目上傳到服務(wù)器

第三步:在linux服務(wù)器上為項(xiàng)目創(chuàng)建虛擬環(huán)境,并安裝項(xiàng)目所需的依賴
1.切換到pip3所在的目錄 /usr/local/python/bin,執(zhí)行以下命令

# 安裝虛擬環(huán)境
pip3 install virtualenv

# 創(chuàng)建虛擬環(huán)境 ENV
virtualenv ENV

# 切換到虛擬環(huán)境所在的目錄
cd ENV

# 啟用虛擬環(huán)境
source ./bin/activate

# 安裝依賴清單里的庫(kù)
pip3 install -r requirements.txt

# 列出當(dāng)前虛擬環(huán)境所安裝的依賴庫(kù)
pip3 list

第四步:添加自定義系統(tǒng)服務(wù)(很重要)

# 這樣的命令在ssh終端退出后,python進(jìn)程也會(huì)被殺掉
python xxx.py &

需要?jiǎng)?chuàng)建一個(gè)自定義的系統(tǒng)服務(wù),來(lái)保證python程序能夠在后臺(tái)運(yùn)行。

1.創(chuàng)建系統(tǒng)服務(wù)

vim /usr/lib/systemd/system/robot.service

內(nèi)容如下:

[Unit]
Description=robot
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/python3/bin/ENV/bin/python /usr/local/python3/bin/ENV/p3.py &
PrivateTmp=true

[Install]
WantedBy=multi-user.target

ExecStart為服務(wù)啟動(dòng)時(shí)執(zhí)行的命令,不能用相對(duì)路徑, 一定要全路徑。
這里也可以將命令寫到任意的.sh文件中,這里寫.sh文件的全路徑也是可以的。

2.啟用自定義系統(tǒng)服務(wù)

systemctl enable robot

3.啟動(dòng)服務(wù)

systemctl start robot

可以查看進(jìn)程,確認(rèn)一下服務(wù)是否啟動(dòng)

ps aux|grep robot

完畢!

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。


文章標(biāo)題:如何在linux服務(wù)器中部署一個(gè)python項(xiàng)目-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://weahome.cn/article/ecdcg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部