专栏/python embeded,一种很好的pyinstaller的代替方式

python embeded,一种很好的pyinstaller的代替方式

2021年11月23日 05:38--浏览 · --点赞 · --评论
粉丝:36文章:3

自己写的python脚本如果想在别人电脑上运行目前已知有两种方式

  1. 用pyinstaller打包,但这种方式会有很多坑,而且打包之后的应用运行很慢

  2. 使用python embedable版,可以在官网下载,刚下载的是没有pip功能的,所以要在根目录下载一个get-pip.py文件,链接:https://bootstrap.pypa.io/get-pip.py,然后在cmd中输入python.exe的路径,运行get-pip.py

cmd C:\Users\fly\Downloads\python-3.9.9-embed-amd64\python.exe get-pip.py

执行完毕后会多出Lib和Scripts两个文件夹,然后可以使用

C:\Users\fly\Downloads\python-3.9.9-embed-amd64\python.exe -m pip install numpy

这样的命令安装需要的各种第三方库。

但这其中还是有个坑,python embedable是不带tkinter的,而且无法通过pip来安装,解决方法:下载一个与python embedable版本相同的python安装包,安装时不要加入环境变量(如果你电脑上已经有anaconda的话),然后将安装路径下的一些文件复制到python embedable的路径下

  • /tcl 拷贝到 /

  • /Lib/tkinter 拷贝到 /Lib/site-packages/

  • /DLLs/_tkinter.pyd 拷贝到 /

  • /DLLs/tcl86t.dll 拷贝到 /

  • /DLLs/tk86t.dll 拷贝到 /

这样就能正常使用tkinter啦!

将python embedable放到你的项目中,建立一个.bat文件,输入

%CD%\python_embedable\python.exe main.py

保存,然后双击就能运行脚本啦!

但是!如果你的项目包含的有自定义包和模块的话,这样直接运行会失败,原因可能是这个python找不到你自定义的模块,解决方法为在启动脚本最上方添加如下代码:

import os
cwd=os.getcwd()
import sys
sys.path.append(cwd)

这样就能把你现在的路径添加到系统环境变量路径中,就能顺利的找到你自己写的模块啦!


参考:

https://blog.glwsq.cn/2020/03/16/ce7ad02c/

https://www.codenong.com/jsd4d40cb403d6/


投诉或建议