Ubuntu:Pyinstaller 打包python文件的环境安装、打包过程记录

针对Pyinstaller搭建python环境及打包过程

环境

PC System:Ubuntu 18.04
Python Version:Python 3.8.0
Pyinstaller Version:Pyinstaller 4.0

Python 安装

1.下载 wget

$ sudo apt-get install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget

2.使用 wget 从官网下载 python3.8

$ wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz

(注意:我开始是从网页上下载 python 源码进行编译,在进行到 make install 时会报错,提示找不到 zlib,所以后面改为用 wget 下载。)

3.将下载下来的python源码放到 /usr/local/ 下进行解压:

$ sudo mv ./Python-3.8.0.tgz /usr/local/Python-3.8.0.tgz
$ sudo tar -xvf Python-3.8.0.tgz

4.切换到解压出来的python源码目录,然后运行 configure 文件:

$ cd Python-3.8.0
$ ./configure --enable-optimizations --prefix=/usr/local/python38 --enable-shared

(注意:–prefix 是将python安装到后面的路径下 /usr/local/python38 ,后续如果想卸载就直接删除这个目录就好了。)
5.完成之后就是编译环节:

$ make -j4
$ sudo make altinstall

6.第5步完成之后 python3.8 就安装完成了:

$ python3.8 --version 
#或者切换到python安装目录运行python3.8:cd /usr/local/python38/bin/python3.8
$ ./python3.8      #进入python自带的IDE就行

7.将 python3.8 设置为python所调用的python版本:

#先将原有的python3的软链接删除掉
$ sudo rm -rf /usr/bin/python3
#然后建立python3.8的软链接
$ sudo ln -s /usr/local/python38/bin/python3.8 /usr/bin/python3

8.查看是否建立成功:

$ python3     #进入python3.8 自带IDE即建立软链接成功

到这一步python方面的安装就完成了。
Comments:
1.另外一个python安装方式:

$ sudo apt update
$ sudo apt install software-properties-common
$ sudo add-apt-repository ppa:deadsnakes/ppa
$ sudo apt install python3.8

2.另外一种将python3.8设置为默认python3所调用的python版本:

$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
$ sudo update-alternatives --config python3    #这条命令之后需要在命令行输入选项,输入python3.8对应的索引就行

下载python第三方包

  1. 首先查看 pip3 是否安装完成,若为成功安装,使用 apt-get 安装即可,之后再更新一下 pip3
$ pip3
$ sudo apt-get install python3-pip
$ pip3 install --upgrade pip

2.给 Ubuntupip3 更换源

#Ubuntu
#打开sources.list文件编辑
$ sudo  vim   /etc/apt/sources.list 
#删除原来的文件内容,复制下面的到sources.list文件中并保存
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
#更新列表即可
$ source /etc/apt/sources.list
$ sudo apt update
#pip3
$ pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple/

3.下载其他一些我打包的python文件需要的第三方包

#下载pyinstaller 4.0(4.1版本打包会有点问题);--default-timeout 10000:将等待请求响应时间设置为10000s
$ pip3 install pyinstaller==4.0 --default--timeout 10000

#下载staticx 0.11.0版本
$ pip3 install staticx==0.11.0 --default-timeout 10000

#下载yinyaes 打包过程中的依赖包
$ pip3 install tinyaes --default-timeout 10000

#下载six 打包过程中的依赖包
$ pip3 install six --default-timeout 10000

#下载sqlalchemy 打包的python文件中有导入
$ pip3 install sqlalchemy --default-timeout 10000

#下载lxml 打包的python文件中有导入
$ pip3 install lxml --default-timeout 10000

使用Pyinstaller打包python文件

可以使用 pyinstaller 一条命令直接打包,也可以先使用 pyi-makespec 生成 .spec 文件再使用 pyinstaller xx.spec 进行打包,前面一种就包含后面两个步骤。

#直接使用pyinstaller进行打包
$ pyinstaller --key thundersoft -F -w main.py -p analyseArxmlBase.py -p analyseArxmlImplemention.py -p ArxmlDataDictionary.py -p autosar_api_00045.py -p autosar_api_00047.py -p autosar_api_00048.py -p commonFunc.py -p logcontrol.py -p orm_2_db.py -p settings.py --hidden-import analyseArxmlBase --hidden-import analyseArxmlImplemention --hidden-import ArxmlDataDictionary --hidden-import autosar_api_00045 --hidden-import autosar_api_00047 --hidden-import autosar_api_00048 --hidden-import commonFunc --hidden-import logcontrol --hidden-import orm_2_db --hidden-import settings

#先使用pyi-makespec生成.spec文件再使用pyinstaller xx.spec进行打包
$ pyi-makespec --key thundersoft -F -w main.py -p analyseArxmlBase.py -p analyseArxmlImplemention.py -p ArxmlDataDictionary.py -p autosar_api_00045.py -p autosar_api_00047.py -p autosar_api_00048.py -p commonFunc.py -p logcontrol.py -p orm_2_db.py -p settings.py --hidden-import analyseArxmlBase --hidden-import analyseArxmlImplemention --hidden-import ArxmlDataDictionary --hidden-import autosar_api_00045 --hidden-import autosar_api_00047 --hidden-import autosar_api_00048 --hidden-import commonFunc --hidden-import logcontrol --hidden-import orm_2_db --hidden-import settings
$ pyinstaller main.spec

pyinstaller 打包命令中可以看到:

--> -p analyseArxmlBase.py				# -p (我的理解)是需要打包的python文件
--> --hidden-import analyseArxmlBase	# --hidden-import (我的理解)是这些pythen文件中import的模块
--> --add-data xxxx						# --add-data xxxx (我的理解)是一些除了python文件以外的一些文件如txt文件等一类静态资源。

另外静态资源还可以通过修改main.spec文件进行添加,下图红框标记的地方即添加静态资源的位置,在 datas 后面的方括号中添加静态资源的路径和文件名。如:datas=[(‘template/template.txt’,’.’),(…)],之后再运行 pyinstaller xxx.spec 即可。

在这里插入图片描述
生成可运行程序在当前文件加的 dist 目录下。
到这里,Ubuntu 下的python3.8安装以及使用pyinstaller进行打包python文件就完成了。
下一篇我将这整个过程中遇到的问题进行一个整理。

  • 0
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
评论

打赏作者

A-Little-Tester

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值