91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在linux服務器中部署一個python項目

發布時間:2020-11-07 15:22:50 來源:億速云 閱讀:355 作者:Leah 欄目:開發技術

如何在linux服務器中部署一個python項目?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

最近用Python寫了個外掛,需要部署到Linux環境的服務器上,由于之前本地開發時使用virtualenv,使用這個虛擬環境有個好處是項目中依賴的庫不會是全局的,只在當前項目的目錄下有效,因為我是Mac系統,virtualenv環境下的庫文件和linux上所需要的庫不通用,所以不能簡單的將整個env拷貝到服務器運行,需要做一些額外的工作。

一般每個不同的項目都會依賴各自的庫,有些庫的版本不一樣會引起沖突,為了解決這個問題,需要使用虛擬環境,Python可以在每個項目目錄下創建各自的虛擬環境,項目所依賴的包就在環境目錄下,這樣避免了庫版本的沖突,也方便相同操作系統間可以快速的拷貝項目運行。

我使用的是Python3編寫的項目,CentOS 7的服務器上只有Python2,所以需要先安裝一下Python3的環境

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

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

2.從官網下載python3的源碼

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

3.依次執行 解壓>進入解壓后的目錄>編譯安裝

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

4.安裝完畢,創建軟連接

ln -s /usr/local/python3/bin/python3 /usr/bin/python
# 執行命令
python -V #將會看到python3的版本
# 執行命令
python2 -V #將會看到python2的版本

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

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

第二步:將本地開發環境的依賴項目生成清單文件
1.在本地的開發環境中,env下執行:

pip3 freeze >requirements.txt

清單文件將會生成在當前項目目錄下,內容如下所示

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

將生成后的文件上傳到linux服務器

2.將Python項目上傳到服務器

第三步:在linux服務器上為項目創建虛擬環境,并安裝項目所需的依賴
1.切換到pip3所在的目錄 /usr/local/python/bin,執行以下命令

# 安裝虛擬環境
pip3 install virtualenv

# 創建虛擬環境 ENV
virtualenv ENV

# 切換到虛擬環境所在的目錄
cd ENV

# 啟用虛擬環境
source ./bin/activate

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

# 列出當前虛擬環境所安裝的依賴庫
pip3 list

第四步:添加自定義系統服務(很重要)

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

需要創建一個自定義的系統服務,來保證python程序能夠在后臺運行。

1.創建系統服務

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

內容如下:

[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為服務啟動時執行的命令,不能用相對路徑, 一定要全路徑。
這里也可以將命令寫到任意的.sh文件中,這里寫.sh文件的全路徑也是可以的。

2.啟用自定義系統服務

systemctl enable robot

3.啟動服務

systemctl start robot

可以查看進程,確認一下服務是否啟動

ps aux|grep robot

完畢!

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

商河县| 博爱县| 海原县| 竹溪县| 普安县| 北海市| 漳浦县| 安阳市| 鞍山市| 香格里拉县| 菏泽市| 卫辉市| 汶上县| 平和县| 保靖县| 广平县| 即墨市| 湟源县| 外汇| 太湖县| 嘉黎县| 沙洋县| 吉首市| 马关县| 岑巩县| 南江县| 彭州市| 贵阳市| 江口县| 衡东县| 耒阳市| 嘉定区| 出国| 怀化市| 九台市| 乐东| 梁平县| 密山市| 错那县| 宿州市| 宝兴县|