[問題] python新手,想請教發佈程式問題大哉問

作者: shou666 (shou666)   2020-03-11 14:00:09
大家好
對python是全新手,語法等等網路上有許多資源可以K
但一些問題找不到方向,想請大家指引一下
以一個例子來說,假設我寫好一個helloworld.py,
單機執行沒問題了,
也準備好一個實際的server,準備當成正式環境,假設是台unix server好了,python假設
也裝好了
server位於內網中無對外網路
首先是編譯問題
發布出去一般都是發布.py這個檔案嗎?目前我只會python xxx.py的執行方式所以才有此
一問
打包問題:
假設我開發過程pip安裝了一些套件,我該如何將這些套件連同程式打包起來?
以java來說有打包jar的流程,然後複製jar到其他機器上執行,python上這個流程是什麼
呢?主要是因網路問題,不太可能什麼事情都pip安裝,是否有自行複製套件到主機上的
方式?
目前找到的資源大多是語法,或是哪些套件好用,缺乏這方面的資訊,加上發布關鍵字查
到的直接跳到docker,cicd的部署對我又跑太快,再麻煩大家指引一下了,謝謝
作者: Hsins (翔)   2020-03-11 14:46:00
就是把 Python Script 放到 server 上 run 他。Python 是直譯式語言,沒有編譯問題,Java 打包過程涉及到將 .java 編譯成可以 Java 虛擬機可以處理的 .class 字節碼。Python 的這個過程,比較需要看你的專案大小,如果是單一不涉及其他 package 的就直接複製過去在 server 上執行腳本就可以了,如果有 import 其他 package 就記得把依賴的套件在 server 上裝一裝,通常會用 Python 環境或 docker 把這
作者: sherees (ShaunTheSheep)   2020-03-11 14:51:00
想到的最佳解就是docker了
作者: Hsins (翔)   2020-03-11 14:51:00
個步驟包一包,避免污染系統層級的 Python 相關套件。
作者: sherees (ShaunTheSheep)   2020-03-11 14:52:00
或者寫一個setup去做安裝也可以解決
作者: areyo (沒有名字的怪物)   2020-03-11 17:14:00
Django?flask
作者: yushes920179 (樂冰)   2020-03-11 19:51:00
Pyinstaller 打包成 exe上面那些都需要網路 docker hub也要網路
作者: alvinlin (林矜業)   2020-03-12 00:36:00
通常大家會用pip freeze先產生一個requirements.txt給你然後建立一個虛擬環境目錄用 pip3 install PACKAGE -t .然後zip,copy過去部署.參考https://tinyurl.com/qk356nb
作者: shou666 (shou666)   2020-03-13 09:57:00
謝謝大家的幫忙,綜合大家的指引,我找到用pip frzeeze取得requirements.txt,再 pip download -r requirements.txt下載依賴套件,再搬到主機上離線部署,有個方向了,謝謝大家
作者: alvinlin (林矜業)   2020-03-17 01:30:00
^^

Links booklink

Contact Us: admin [ a t ] ucptt.com