自己写的python脚本如果想在别人电脑上运行目前已知有两种方式
用pyinstaller打包,但这种方式会有很多坑,而且打包之后的应用运行很慢
使用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/