Python項(xiàng)目打包部署到服務(wù)器的實(shí)現(xiàn)
一、準(zhǔn)備工作
- 開發(fā)環(huán)境:本文以PyCharm為例,其他IDE或文本編輯器同理。
- 服務(wù)器:本文以Ubuntu為例,其他Linux系統(tǒng)同理。
- Python項(xiàng)目:已完成開發(fā)并能在本地正常運(yùn)行。
二、項(xiàng)目打包
Python項(xiàng)目打包通常使用pip
安裝依賴,并通過setuptools
創(chuàng)建可執(zhí)行的腳本。
- 安裝打包工具
首先,確保你的環(huán)境中安裝了setuptools
和wheel
:
pip install setuptools wheel
- 創(chuàng)建
setup.py
在項(xiàng)目根目錄下創(chuàng)建一個(gè)setup.py
文件,內(nèi)容如下:
from setuptools import setup, find_packages setup( name='your_project_name', version='0.1.0', packages=find_packages(), install_requires=[ # 這里填寫項(xiàng)目依賴的包,例如 'Flask==1.1.2', 'requests==2.25.1', ], entry_points={ 'console_scripts': [ 'your_script_name=your_package.module:main_function', ], }, )
替換your_project_name
、your_script_name
、your_package.module
和main_function
為你的項(xiàng)目信息。
3. 打包項(xiàng)目
在命令行中,進(jìn)入項(xiàng)目根目錄,執(zhí)行以下命令進(jìn)行打包:
python setup.py sdist bdist_wheel
打包完成后,你會(huì)在dist
目錄下找到.tar.gz
和.whl
文件。
三、部署到服務(wù)器
- 上傳打包文件到服務(wù)器
使用SCP命令將打包好的文件上傳到服務(wù)器:
scp dist/your_project_name-0.1.0-py3-none-any.whl user@your_server_ip:/path/to/deploy
- 安裝項(xiàng)目依賴
連接到服務(wù)器,并安裝項(xiàng)目依賴:
ssh user@your_server_ip cd /path/to/deploy pip install your_project_name-0.1.0-py3-none-any.whl
或者,如果你上傳了.tar.gz
文件,可以使用以下命令安裝:
pip install your_project_name-0.1.0.tar.gz
- 運(yùn)行項(xiàng)目
安裝完成后,你可以直接運(yùn)行你的腳本:
your_script_name
如果需要后臺(tái)運(yùn)行,可以使用nohup
和&
:
nohup your_script_name &
- 查看運(yùn)行日志
查看運(yùn)行日志:
tail -f nohup.out
四、設(shè)置服務(wù)自啟動(dòng)
為了使項(xiàng)目在服務(wù)器啟動(dòng)時(shí)自動(dòng)運(yùn)行,可以創(chuàng)建一個(gè)系統(tǒng)服務(wù)。
- 創(chuàng)建服務(wù)文件
sudo nano /etc/systemd/system/your_project_name.service
添加以下內(nèi)容:
[Unit] Description=My Python Project Service After=network.target [Service] User=user ExecStart=/usr/bin/python /path/to/your_script_name Restart=on-failure [Install] WantedBy=multi-user.target
替換user
、/path/to/your_script_name
為你的用戶名和腳本路徑。
啟動(dòng)并使服務(wù)自啟動(dòng)
sudo systemctl start your_project_name sudo systemctl enable your_project_name
現(xiàn)在,你的Python項(xiàng)目應(yīng)該已經(jīng)成功部署到服務(wù)器并配置為自啟動(dòng)服務(wù)。如果需要重啟或停止服務(wù),可以使用以下命令:
sudo systemctl restart your_project_name sudo systemctl stop your_project_name
通過以上步驟,你的Python項(xiàng)目已經(jīng)可以穩(wěn)定運(yùn)行在服務(wù)器上了。
到此這篇關(guān)于Python項(xiàng)目打包部署到服務(wù)器的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python項(xiàng)目打包部署到服務(wù)器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 實(shí)現(xiàn)讀取csv數(shù)據(jù),分類求和 再寫進(jìn) csv
這篇文章主要介紹了python 實(shí)現(xiàn)讀取csv數(shù)據(jù),分類求和 再寫進(jìn) csv,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05django與小程序?qū)崿F(xiàn)登錄驗(yàn)證功能的示例代碼
這篇文章主要介紹了django與小程序?qū)崿F(xiàn)登錄驗(yàn)證功能的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02Python使用Pexpect庫實(shí)現(xiàn)自動(dòng)化與終端交互的任務(wù)
Pexpect 是一個(gè) Python 庫,用于自動(dòng)化與終端交互的任務(wù),它提供了一種簡單的方式來編寫腳本,以便與終端程序進(jìn)行交互,下面我們就來深入了解一下Pexpect庫的具體使用吧2023-12-12python中的PywebIO模塊制作一個(gè)數(shù)據(jù)大屏
這篇文章主要介紹了python中的PywebIO模塊制作一個(gè)數(shù)據(jù)大屏,一個(gè)制作數(shù)據(jù)大屏的工具,非常的好用,100行的Python代碼就可以制作出來一個(gè)完整的數(shù)據(jù)大屏,并且代碼的邏輯非常容易理解,需要的朋友可以參考一下2022-03-03在Python下使用Txt2Html實(shí)現(xiàn)網(wǎng)頁過濾代理的教程
這篇文章主要介紹了在Python下使用Txt2Html實(shí)現(xiàn)網(wǎng)頁過濾代理的教程,來自IBM官方開發(fā)者技術(shù)文檔,需要的朋友可以參考下2015-04-04Django點(diǎn)贊的實(shí)現(xiàn)示例
本文主要介紹了Django點(diǎn)贊的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03解決python字典對值(值為列表)賦值出現(xiàn)重復(fù)的問題
今天小編就為大家分享一篇解決python字典對值(值為列表)賦值出現(xiàn)重復(fù)的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01Python 實(shí)例方法、類方法、靜態(tài)方法的區(qū)別與作用
Python中至少有三種比較常見的方法類型,即實(shí)例方法,類方法、靜態(tài)方法。它們是如何定義的呢?如何調(diào)用的呢?它們又有何區(qū)別和作用呢?感興趣的朋友跟隨小編一起看看吧2019-08-08如何在python中用os模塊實(shí)現(xiàn)批量移動(dòng)文件
在工作中難免會(huì)遇到需要批量整理文件的情況,當(dāng)需要從一堆文件中將部分文件批量地轉(zhuǎn)移時(shí),如果手工一一轉(zhuǎn)移難免浪費(fèi)時(shí)間,這篇文章主要給大家介紹了關(guān)于如何在python中用os模塊實(shí)現(xiàn)批量移動(dòng)文件的相關(guān)資料,需要的朋友可以參考下2022-05-05