Python應(yīng)用開發(fā)之部署和安裝 2024-07-09

可執(zhí)行文件

生成python的.exe 可執(zhí)行文件

pyinstaller.exe  xxx.py

注意,對于win7系統(tǒng)斑芜,只支持python3.8版本生產(chǎn)的可執(zhí)行文件谈撒,需要額外安裝python3.8 及對應(yīng)版本的pyinstaller

生成python動態(tài)鏈接庫.pyd文件

.pyd文件是python中使用的編譯后的二進(jìn)制文件蚕捉,類似于.dll 和.so文件律胀。常用來進(jìn)行代碼加密和封裝。
這里使用cthon編譯python生產(chǎn).pyd文件
安裝cython

pip install  cython

創(chuàng)建setup.py文件情连,用于配置相關(guān)信息闪水,并寫入如下內(nèi)容:

from distutils.core import setup
from Cython.Build import cythonize

setup(
    name = 'your project name',
    ext_modules = cythonize(["xxx.py", "xxx.py"]),
)

生成 .pyc 文件

python setup.py build_ext --inplace

執(zhí)行命令后,會再當(dāng)前目錄下生產(chǎn)對應(yīng)的.c和,.pyd文件
當(dāng)python腳本文件名和內(nèi)部函數(shù)名稱不一致時調(diào)用pyd文件會報module初始化錯誤,這時需要在腳本內(nèi)添加init函數(shù)的定義(空函數(shù)即可)。
python腳本可以直接import生產(chǎn)的pyd 文件球榆。

離線打包python運行所需依賴

對于把python應(yīng)用部署在離線電腦的場景朽肥,需要再離線電腦上安裝應(yīng)用所需的依賴,這里使用pipreqs 工具持钉;

安裝pipreqs 工具

pip install pipreqs

抓取當(dāng)前文件夾內(nèi)項目所需的依賴衡招,并保存到requirements.txt文件內(nèi)

 pipreqs .

命令執(zhí)行后系統(tǒng)會在本地生產(chǎn)requirements.txt 文件,并把依賴包的名稱及版本信息寫入其中每强;

創(chuàng)建packages文件夾用于存放下載的依賴包

mkdir packages

運行

pip download -r requirements.txt -d packages

當(dāng)遇到安裝版本沖突是可修改requirements.txt內(nèi)的版本
下載成功后所有的安裝文件就已經(jīng)在package 中了

打包package 文件

zip -r offline_packages.zip requirements.txt packages

拷貝到目標(biāo)機器 (包含requirements.txt文件)
解壓文件

unzip offline_packages.zip

使用pip完成本地安裝:

pip install --no-index --find-links=packages -r requirements.txt

python和pip的安裝

當(dāng)然安裝python 和 pip始腾,再使用pip 安裝本地其他包,
通常python的標(biāo)準(zhǔn)包可以在這里找到:https://pypi.org/

1. 先安裝python

https://www.python.org/downloads/下載對應(yīng)的python安裝程序

2. 安裝pip

https://bootstrap.pypa.io/pip/pip.pyz下載pip安裝包。其他安裝方式參見https://pip.pypa.io/en/stable/installation/
下載后直接運行:

.\pip.pyz

3. 使用pip安裝本地包

進(jìn)入.whl 文件的所在目錄空执,安裝目錄下的所有包

pip install -e ./  

在有網(wǎng)絡(luò)的條件下浪箭,推薦使用pip安裝requirements.txt文件內(nèi)列舉的包:

pip install -r  requirements.txt

常用pip指令有:

pip install numpy==              #查看源上包含的版本
pip install  numpy==1.24.1   #安裝指定版本1.24.1
pip show numpy                      #查看包的信息
pip list                                   #列出所有已安裝的包

使用conda并創(chuàng)建python虛擬環(huán)境

1. 創(chuàng)建python虛擬環(huán)境

conda create --name <yourEnv> python=3.10 numpy pandas
conda create --name <yourEnv> --clone <baseEnv>

2. 進(jìn)入環(huán)境

conda activate <yourEnv>   # 進(jìn)入環(huán)境
conda deactivate <yourEnv> #退出環(huán)境

3. 依據(jù)requirements.txt創(chuàng)建python環(huán)境

conda install --yes --file requirement.txt

4. conda常用命令

conda list                                            #顯示已安裝的包
conda install  numpy scikit-learn        #安裝包
conda env remove -n <yourEnv>       #刪除環(huán)境
conda env list                                     #查看現(xiàn)有環(huán)境
conda install ffmpeg -c conda-forge   #從conda-forge更新python安裝包,conda-forge上的版本會更新更加頻繁

參考:

https://pip.pypa.io/en/stable/installation/
https://packaging.python.org/en/latest/tutorials/installing-packages/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末辨绊,一起剝皮案震驚了整個濱河市奶栖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌门坷,老刑警劉巖宣鄙,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異默蚌,居然都是意外死亡冻晤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進(jìn)店門绸吸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鼻弧,“玉大人,你說我怎么就攤上這事锦茁∪列” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵蜻势,是天一觀的道長撑刺。 經(jīng)常有香客問我鹉胖,道長握玛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任甫菠,我火速辦了婚禮挠铲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘寂诱。我一直安慰自己拂苹,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布痰洒。 她就那樣靜靜地躺著瓢棒,像睡著了一般浴韭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上脯宿,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天念颈,我揣著相機與錄音,去河邊找鬼连霉。 笑死榴芳,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的跺撼。 我是一名探鬼主播窟感,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼歉井!你這毒婦竟也來了柿祈?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤酣难,失蹤者是張志新(化名)和其女友劉穎谍夭,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體憨募,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡紧索,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了菜谣。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片珠漂。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖尾膊,靈堂內(nèi)的尸體忽然破棺而出媳危,到底是詐尸還是另有隱情,我是刑警寧澤冈敛,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布待笑,位于F島的核電站,受9級特大地震影響抓谴,放射性物質(zhì)發(fā)生泄漏暮蹂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一癌压、第九天 我趴在偏房一處隱蔽的房頂上張望仰泻。 院中可真熱鬧,春花似錦滩届、人聲如沸集侯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽棠枉。三九已至浓体,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間辈讶,已是汗流浹背汹碱。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留荞估,地道東北人咳促。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像勘伺,于是被迫代替她去往敵國和親跪腹。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,871評論 2 354

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