embed python打包 和 redis windows使用

使用场景

用python做了一个采数看板的程序,需要现场实测(断网),所以需要打包好环境,让对方可以双击一下即可运行

解决方案

1、pyinstaller打包,其实打包之后的exe,点击运行会在用户目录下的temp解析,如果启动关闭过于频繁,会造成用户的临时文件过多,而且pyinstaller打包环境,总有一些dll找不到报错,所以放弃了

2、使用embed python(嵌入式python),这个就是一个压缩包,装好三方库后,可以直接复制到其他地方,非常方便,缺点:未装三方库19M,装了三方库,整个压缩包150M左右,依赖一定要捋清楚,不是必要的就别往里边放了

过程(注意不能上github或者外网的,自己想办法了)

1、下载embed python,我用的python 3.8.2,(最好3.7以上啦,异步新特性还是很重要的)地址

https://www.python.org/ftp/python/3.8.2/python-3.8.2-embed-amd64.ziphttps://www.python.org/ftp/python/3.8.2/python-3.8.2-embed-amd64.zip2、下载redis windows 5.0(这个是github大佬重新编译的一个window版本,可以用发布订阅新特性,微软那个3.0太低了)

https://github.com/tporadowski/redis/releases/download/v5.0.14/Redis-x64-5.0.14.ziphttps://github.com/tporadowski/redis/releases/download/v5.0.14/Redis-x64-5.0.14.zip3、解压python-3.8.2-embed-amd64.zip,找到pyhton38._pth

embed python打包 和 redis windows使用_第1张图片

 将里面import site注释去掉

python38.zip
.

# Uncomment to run site.main() automatically
import site

4、获取get-pip.py

https://bootstrap.pypa.io/get-pip.pyhttps://bootstrap.pypa.io/get-pip.py复制get-pip.py到python-3.8.2-embed-amd64目录下面,然后运行

cd python-3.8.2-embed-amd64 # 如果在目录下面就省略这一步
python.exe get-pip.py

pip这时候就能装好

5、安装三方库

准备好你要安装的三方库列表requirements.txt,可以在你的开发环境里使用pip freeze > requirements.txt

# 假设在python-3.8.2-embed-amd64目录下
python.exe -m pip install -r requirements.txt
# 或者单独装个requests试试
python.exe -m pip install requests

6、启动你的工程(我的是django工程,最后一句换成你自己的)

# start.bat启动文件
set ROOT=%~dp0
set PYTHONPATH=%ROOT%
set PYTHON=%ROOT%python-3.8.2-embed-amd64\python.exe
set PYTHON_SCRIPT=%ROOT%python-3.8.2-embed-amd64\Scripts
set PATH=%PYTHON%;%PYTHON_SCRIPT%;%PATH%
start %PYTHON% manage.py runserver

这个时候就可以打包个zip文件给领导做演示了

你可能感兴趣的:(python,python,django)