杂记:python和pyinstaller从头安装步骤(附安装包的备份)

pyinstaller 简介

知道的就跳过本章

python 属于脚本语言,只要有 python 就能运行 .py 文件。而 pyinstaller 是可执行文件文件生成工具,约等于编译工具。

以 windows 为例,在 A 计算机上生成的 exe,复制到 B 计算机可以直接运行(B 上面不需要安装 python 或其他任何动态库);唯一的限制是不能用 A 生成的 64位 exe 到 32位操作系统的 B 上运行。

所以适应性好的方式是始终生成 32位的 exe——即使 A 是 64位操作系统,安装 32位的 python 就行。

需求

python 虽然内置了pip工具方便在线安装、更新库,但是还是会有不成功的时候,比如:

  • 封闭的内网环境,网关阻止的绝大多数的下载,怎么办?
  • 有些安装包pip就是死活下载不下来(比如pyinstaller),怎么办?

步骤

所以有必要把离线安装包做个备份,供网络顺畅的计算机上下载,然后:

  • 通过邮件发送
  • 或者用U盘(手机就是个U盘),经安全员检查后进入内网

同时记录整个安装步骤。最初来源于《PyInstaller离线安装-window版本》,前人的功劳不能忽略,毕竟找出了需要的库和下载位置。

又根据最新的版本做了整理,还加了 python 的安装说明。

步骤 文件 在线源 备份下载 安装方式
1.1 python-3.8.3-win32-installer.exe python.org python-3.8.3-win32+pip-22.3.1-setup.rar 双击安装 ☆1
1.2 pip-22.3.1-py3-none-any.whl ...>python -m pip install --upgrade pip 同上 python -m pip install pip-22.3.1-py3-none-any.whl ☆2
2.1 future-0.18.3.tar.gz pypi.org PyInstaller-required-20230120.rar ...\future-0.18.3>python setup.py install ☆3
2.2 pefile-2022.5.30.tar.gz pypi.org 同上 ...\pefile-2022.5.30>python setup.py install
2.3 altgraph-0.17.3.tar.gz`

altgraph-0.17.3-py2.py3-none-any.whl
pypi.org 同上 ...altgraph-0.17.3>python setup.py install

...>pip install altgraph-0.17.3-py2.py3-none-any.whl
2.4 pywin32-ctypes-0.2.0.tar.gz pypi.org 同上 ...\pywin32-ctypes-0.2.0>python setup.py install
2.5 pyinstaller_hooks_contrib-2022.15-py2.py3-none-any.whl ...>pip install pyinstaller-hooks-contrib PyInstaller-required-5.rar ...>pip install pyinstaller_hooks_contrib-2022.15-py2.py3-none-any.whl
3 pyinstaller-4.8-py3-none-win32.whl ...>pip install pyinstaller pyinstaller-4.8-py3-none-win32.whl.rar ...>pip install pyinstaller-4.8-py3-none-win32.whl

☆1: python 的下载/安装/卸载

前面解释了,优先使用 32位版。除非有特殊需求要用 64 位,比如:

  • 做了个32位应用内存不够用。
  • 使用的第三方库只有64位版本。

打开步骤 1.1 中的在线源,进入的页面注意下图的内容,有两个标记 bugfix 的版本不建议用,标记为 security 的才是安全稳定的版本。然后到下面的列表中用 Download 新开(强烈建议)页面。

因为原先每个 release 版本都有安装包可以下载,但是近来(比如 3.3.16 版本) 其页面最下方的 files 列表只有源代码了——开发小组不用自己源代码管理工具,把中间需要测试的版本也放到这里了?

所以你要保留这个页面逐个尝试,才能下载到一个安装包。
杂记:python和pyinstaller从头安装步骤(附安装包的备份)_第1张图片
如无必要,不需要用最新版本(版本中升级中的bug通常碰不到)。而且安装包还用于卸载,必须在本机保留。所以我在备份下载中提供了 3.8.3,不过 pip 提供了该文发表时的最新 22.3.1 版。

安装第一步建议选下面的自定义安装。安装 windows 的尿性 C: 盘不安全,一旦系统重装就丢了;而 python 其实只要配好环境参数就能用,系统重装唯一丢失的就是双击 .py 运行的文件关联。

因此通常把 python 安装目录打包复制到其他计算机上也能用,除非某个包需要用到外部的动态库没安装。
杂记:python和pyinstaller从头安装步骤(附安装包的备份)_第2张图片

环境变量

安装程序默认会自动加环境变量,如果系统重装只了丢了,在 PATH 环境中加下面两个(假定安装目录是D:\App\Python38)

  • D:\App\Python38;
  • D:\App\Python38\Scripts;

注:用 win10 自带的环境变量编辑工具是不用加末尾分号的

还可以加个 PYTHONPATH 的环境变量,把可供其他模块调用的 .py 文件或库(就是一个目录) 放在一个专用的目录下而不是 D:\App\Python38\Scripts\ 下,就能被任意地方的 .py 直接 import 引用而无需指定目录。而且还能防止卸载 python 被删或安装其他 python 版本引用不到。

☆2 pip 更新

python 能用后可以查看当前安装的库,初始如下

D:\>pip list
Package    Version
---------- -------
pip        19.2.3
setuptools 41.2.0
WARNING: You are using pip version 19.2.3, however version 22.3.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

末尾出来个警告,虽然不睬它也可以安装大多数库,偏偏 pyinstaller 安装不了,还是升级吧。

我是用 ...>python -m pip install --upgrade pip 完成了更新才更具提示下到了 .whl 文件,你可以按步骤表格中的命令升级。

☆3 .tar.gz 或 .whl 的安装

从 pypi.org 下载的安装包有两种:

  1. .tar.gz 结尾,直接用 winrar 解压,已经有一级根目录了,所以不要解压到新目录,直接解压到当前目录。解压后命令行控制台进入对应的目录,用一模一样的 python setup.py install 进行安装
  2. .whl 结尾的专用包,命令行控制台用 pip install altgraph-0.17.3-py2.py3-none-any.whl 的格式直接安装。不是当前目录就加上路径

为了在不同 python 版本中都使用同样的库(你的 .py 源文件应该是向后兼容的,不会因为升级了 python 反而不能用了),为防止像 pyinstaller 一样变得下不到安装包,建议保留每个库的安装包。

即使用 pip 直接在线安装,也可以根据提示信息去下载安装包——大多数库都是 .py 源文件,包很小,重复下载也花不了多少时间。

安装 pyinstaller 注意事项

因为在 pyinstaller.org 上已经没有直接的下载了,这个 4.8 版本从哪里下的不记得了。关键是该版本最高支持到 python 3.10,已经测试证实 python 3.11 装不了;
同时也忘了最低支持的版本。如果你已经装了不同版本的 python,就从步骤 2.1 开始试试,只要不是太低的版本应该都可以。

毕竟 pypi.org 上的库基本上向后兼容,极少见到不同的 python 小版本号需要用不同的库版本。

从头安装后至少有下面这些库

D:\>pip list
Package                   Version
------------------------- ---------
altgraph                  0.17.3
future                    0.18.3
pefile                    2022.5.30
pip                       22.3.1
pyinstaller               4.8
pyinstaller-hooks-contrib 2022.15
pywin32-ctypes            0.2.0
setuptools                41.2.0

变更历史

  • 2023-01-22 : 修正了用 .whl 升级 pip 的方式:需要用 python 启动;如果用 pip 按照一般 .whl 的方式安装/升级,会先把 pip 自己卸载,就不能安装了。
  • 2023-01-22 : 增加了前置 2.5。断网从头安装了一遍,发现 pyinstaller 4.8 还有需要。连线状态安装,信任前人的文章,都没留意到有自动下载。

你可能感兴趣的:(Python3,python,windows,开发语言)