You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何为Windows平台Python嵌入式安装包添加第三方依赖包?

给Python嵌入式发行版添加第三方依赖的实操方案

我之前也折腾过用Python嵌入式包做轻量化分发的需求,刚好踩过几个坑,给你分享几个靠谱的实现步骤:

第一步:先给嵌入式Python装上pip

嵌入式包默认是不带pip的,这是安装依赖的前提:

  • 把嵌入式ZIP包解压到本地文件夹,找到里面的python.exe
  • 下载get-pip.py,放到这个解压后的文件夹里
  • 打开命令行,切换到该目录,运行:python get-pip.py,等待pip安装完成

第二步:安装第三方依赖到嵌入式环境

这里有两种常用方式,按需选择:

方式一:直接用pip安装(适合纯Python或预编译好的依赖)

  • 保持命令行在嵌入式Python的根目录,运行:python -m pip install 你的依赖包名,比如python -m pip install requests
  • 划重点:如果是需要编译的依赖(比如numpy、pandas这类),不要直接用pip安装,大概率会编译失败。建议去PyPI下载对应Windows 64位、Python3.6版本的预编译wheel文件(后缀是.whl),然后用python -m pip install 本地wheel文件的完整路径来安装,避免编译问题

方式二:在常规Python环境打包后复制(适合复杂依赖场景)

如果你的依赖涉及很多编译组件,或者不想在嵌入式环境里折腾,可以这么做:

  • 在本地装一个和嵌入式版本完全一致的Python(比如3.6.5 64位)
  • 运行:pip install --target=./temp_deps 你的依赖包名,把依赖安装到临时文件夹temp_deps
  • temp_deps里的所有文件和文件夹,复制到嵌入式Python目录下的Lib/site-packages文件夹中
  • 额外注意:有些依赖会附带动态链接库(.dll文件),如果运行脚本时提示找不到dll,要把这些dll复制到嵌入式Python的根目录(和python.exe同目录)

第三步:配置嵌入式Python的依赖路径

  • 解压后的嵌入式文件夹里有个python36._pth文件(对应3.6版本),用记事本打开它
  • 找到#Lib/site-packages这一行,把前面的#删掉,保存文件。这样Python启动时才会扫描site-packages目录下的第三方依赖

第四步:打包分发

  • 把嵌入式Python的整个文件夹、你的脚本文件放在同一目录下
  • 可以用7-Zip等工具打包成自解压压缩包,用户双击就能自动解压运行;或者直接打包成ZIP,用户解压后运行python 你的脚本名.py即可
  • 如果想让用户更方便,写个简单的批处理文件(比如run_script.bat),内容如下:
@echo off
python your_script.py
pause

把这个bat文件放在根目录,用户双击就能直接运行你的脚本

避坑提醒

  • 必须保证安装依赖的Python版本和嵌入式版本完全一致(包括位数、小版本号),否则会出现奇怪的兼容性错误
  • 部分依赖需要系统安装VC运行库,如果用户运行时提示缺失dll,记得提醒他们安装对应版本的VC Redistributable包

内容的提问来源于stack exchange,提问作者feetwet

火山引擎 最新活动