使用Python embeddable package 版(嵌入式、绿色版)分发自己的python程序
1、Python embeddable package 版介绍
https://www.python.org/downloads/windows/?Download Windows embeddable package (32-bit)
这个版本又称为嵌入式版,绿色版。该版本就是一个zip压缩包,解压缩之后得到一个文件夹,该文件夹包含了一个最小python运行环境(不包括doc、idle、pip等)。
该版本主要用途有:
- 嵌入其他程序之中
- 与系统python环境隔离
- 方便分发我们的脚本
该版可以方便的在python官网下载得到,下载后将其解压到想要的目录即可。
2、配置包导入搜索路径
该版本默认的包导入搜索路径由根目录内?pythonXX._pth
?(XX为版本号)文件决定,该文件默认内容如下:
python38.zip
.
# Uncomment to run site.main() automatically
#import site
也就是说默认情况下该python环境只会从python38.zip
和.
(该环境根目录)搜索可导入的包。可以根据自己的需要,手动修改该文件来配置包导入搜索路径。
在实际使用过程中,我们一般将该环境的目录作为我们程序的子目录。为了能正确导入我们程序目录内的自定义模块,只需要在pythonXX._PTH
文件中添加..
,即该环境目录的上级目录。
3、使用第三方库
使用第三方库有如下两种思路。
3.1 手动复制第三方库
把自己程序用到的第三方库复制到指定文件夹,并把该文件夹配置到pythonXX._pth
?文件即可。
3.2 使用pip安装第三方库
由于该环境不集成pip包,所以需要手动安装。
首先下载get-pip.py
脚本,可以参考官方教程:https://pip.pypa.io/en/stable/installation。
打开Windows命令行,cd
到该python环境根目录,执行python get-pip.py
,会自动下载并安装pip包。
pip安装完成后,会自动在该环境根目录创建Lib\site-packages
和Scripts
文件夹,分别包含通过pip安装的第三方包和pip工具本身。
但是,此时第三方包所在的目录并未加入到包导入搜索路径里。
可以手动修改pythonXX._pth
文件,添加一行:
Lib\site-packages
也可以,把pythonXX._pth
文件里的#import site
前的#
删除。即在该环境初始化时,导入site
模块,该模块会附加特定的路径到包导入搜索路径并且添加一些内建对象,其中就包括python环境根目录的site-packgages
路径。
现在,就可以通过 pip来安装第三方库。
但是由于此时我们并没有设置系统环境变量,不能直接执行pip install
?命令。我们只能cd
到该环境根目录,用python -m pip install
命令来安装。
4、分发程序
现在我们把程序连同python环境一同打包给别人,别人并无法运行。因为我们没有配置环境变量。
但是我们并不能奢求别人会配置环境变量。而应该应尽量让自己的程序包像绿色软件一样,解压即可直接运行。要做到这一步,我们可以借助windows批处理脚本来完成。
新建一个bat
批处理文件,在这个批处理文件里,我们首先添加相关目录到系统环境变量,然后执行python yourscript.py
,下面是一个例子:
@echo off
set path=%path%;%cd%\python;
python yourscript.py
在这个批处理里%path%
指系统原本的环境变量,%cd%
指当前目录。多个环境变量路径用;
分割。
如果想在批处理命令里用pip安装第三方包,请使用python -m pip install
命令,单纯的pip
命令会在整体文件夹路径发生改变的时候出错。
这里添加的系统环境变量是临时的,只对当前命令行有效。
这样以来,别人就可以通过双击批处理命令文件来打开我们的程序了。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!