知道的就跳过本章
python 属于脚本语言,只要有 python 就能运行 .py 文件。而 pyinstaller 是可执行文件文件生成工具,约等于编译工具。
 以 windows 为例,在 A 计算机上生成的 exe,复制到 B 计算机可以直接运行(B 上面不需要安装 python 或其他任何动态库);唯一的限制是不能用 A 生成的 64位 exe 到 32位操作系统的 B 上运行。
 所以适应性好的方式是始终生成 32位的 exe——即使 A 是 64位操作系统,安装 32位的 python 就行。
python 虽然内置了pip工具方便在线安装、更新库,但是还是会有不成功的时候,比如:
所以有必要把离线安装包做个备份,供网络顺畅的计算机上下载,然后:
同时记录整个安装步骤。最初来源于《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 | 同上 | 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 | 
| 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 | 
前面解释了,优先使用 32位版。除非有特殊需求要用 64 位,比如:
打开步骤 1.1 中的在线源,进入的页面注意下图的内容,有两个标记 bugfix 的版本不建议用,标记为 security 的才是安全稳定的版本。然后到下面的列表中用 Download 新开(强烈建议)页面。
 因为原先每个 release 版本都有安装包可以下载,但是近来(比如 3.3.16 版本) 其页面最下方的 files 列表只有源代码了——开发小组不用自己源代码管理工具,把中间需要测试的版本也放到这里了?
 所以你要保留这个页面逐个尝试,才能下载到一个安装包。
 
 如无必要,不需要用最新版本(版本中升级中的bug通常碰不到)。而且安装包还用于卸载,必须在本机保留。所以我在备份下载中提供了 3.8.3,不过 pip 提供了该文发表时的最新 22.3.1 版。
安装第一步建议选下面的自定义安装。安装 windows 的尿性 C: 盘不安全,一旦系统重装就丢了;而 python 其实只要配好环境参数就能用,系统重装唯一丢失的就是双击 .py 运行的文件关联。
 因此通常把 python 安装目录打包复制到其他计算机上也能用,除非某个包需要用到外部的动态库没安装。
 
安装程序默认会自动加环境变量,如果系统重装只了丢了,在 PATH 环境中加下面两个(假定安装目录是D:\App\Python38)
D:\App\Python38;D:\App\Python38\Scripts;注:用 win10 自带的环境变量编辑工具是不用加末尾分号的
还可以加个 PYTHONPATH 的环境变量,把可供其他模块调用的 .py 文件或库(就是一个目录) 放在一个专用的目录下而不是 D:\App\Python38\Scripts\ 下,就能被任意地方的 .py 直接 import 引用而无需指定目录。而且还能防止卸载 python 被删或安装其他 python 版本引用不到。
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 文件,你可以按步骤表格中的命令升级。
从 pypi.org 下载的安装包有两种:
.tar.gz 结尾,直接用 winrar 解压,已经有一级根目录了,所以不要解压到新目录,直接解压到当前目录。解压后命令行控制台进入对应的目录,用一模一样的 python setup.py install 进行安装.whl 结尾的专用包,命令行控制台用 pip install altgraph-0.17.3-py2.py3-none-any.whl 的格式直接安装。不是当前目录就加上路径为了在不同 python 版本中都使用同样的库(你的 .py 源文件应该是向后兼容的,不会因为升级了 python 反而不能用了),为防止像 pyinstaller 一样变得下不到安装包,建议保留每个库的安装包。
 即使用 pip 直接在线安装,也可以根据提示信息去下载安装包——大多数库都是 .py 源文件,包很小,重复下载也花不了多少时间。
因为在 pyinstaller.org 上已经没有直接的下载了,这个 4.8 版本从哪里下的不记得了。关键是该版本最高支持到 python 3.10,已经测试证实 python 3.11 装不了;
 同时也忘了最低支持的版本。如果你已经装了不同版本的 python,就从步骤 2.1 开始试试,只要不是太低的版本应该都可以。
 毕竟 pypi.org 上的库基本上向后兼容,极少见到不同的 python 小版本号需要用不同的库版本。
                    上一篇:SQL同时在线问题的解法
                
下一篇:数据结构初级<排序>