Python应用开发之部署和安装 2024-07-09

可执行文件

生成python的.exe 可执行文件

pyinstaller.exe  xxx.py

注意,对于win7系统,只支持python3.8版本生产的可执行文件,需要额外安装python3.8 及对应版本的pyinstaller

生成python动态链接库.pyd文件

.pyd文件是python中使用的编译后的二进制文件,类似于.dll 和.so文件。常用来进行代码加密和封装。
这里使用cthon编译python生产.pyd文件
安装cython

pip install  cython

创建setup.py文件,用于配置相关信息,并写入如下内容:

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

执行命令后,会再当前目录下生产对应的.c和,.pyd文件
当python脚本文件名和内部函数名称不一致时调用pyd文件会报module初始化错误,这时需要在脚本内添加init函数的定义(空函数即可)。
python脚本可以直接import生产的pyd 文件。

离线打包python运行所需依赖

对于把python应用部署在离线电脑的场景,需要再离线电脑上安装应用所需的依赖,这里使用pipreqs 工具;

安装pipreqs 工具

pip install pipreqs

抓取当前文件夹内项目所需的依赖,并保存到requirements.txt文件内

 pipreqs .

命令执行后系统会在本地生产requirements.txt 文件,并把依赖包的名称及版本信息写入其中;

创建packages文件夹用于存放下载的依赖包

mkdir packages

运行

pip download -r requirements.txt -d packages

当遇到安装版本冲突是可修改requirements.txt内的版本
下载成功后所有的安装文件就已经在package 中了

打包package 文件

zip -r offline_packages.zip requirements.txt packages

拷贝到目标机器 (包含requirements.txt文件)
解压文件

unzip offline_packages.zip

使用pip完成本地安装:

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

python和pip的安装

当然安装python 和 pip,再使用pip 安装本地其他包,
通常python的标准包可以在这里找到:https://pypi.org/

1. 先安装python

https://www.python.org/downloads/下载对应的python安装程序

2. 安装pip

https://bootstrap.pypa.io/pip/pip.pyz下载pip安装包。其他安装方式参见https://pip.pypa.io/en/stable/installation/
下载后直接运行:

.\pip.pyz

3. 使用pip安装本地包

进入.whl 文件的所在目录,安装目录下的所有包

pip install -e ./  

在有网络的条件下,推荐使用pip安装requirements.txt文件内列举的包:

pip install -r  requirements.txt

常用pip指令有:

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

使用conda并创建python虚拟环境

1. 创建python虚拟环境

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

2. 进入环境

conda activate <yourEnv>   # 进入环境
conda deactivate <yourEnv> #退出环境

3. 依据requirements.txt创建python环境

conda install --yes --file requirement.txt

4. conda常用命令

conda list                                            #显示已安装的包
conda install  numpy scikit-learn        #安装包
conda env remove -n <yourEnv>       #删除环境
conda env list                                     #查看现有环境
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/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,997评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,603评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,359评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,309评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,346评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,258评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,122评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,970评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,403评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,596评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,769评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,464评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,075评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,705评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,848评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,831评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,678评论 2 354

推荐阅读更多精彩内容