jjzjj

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

Tiger_Zhao 2023-11-10 原文

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.1python-3.8.3-win32-installer.exepython.orgpython-3.8.3-win32+pip-22.3.1-setup.rar双击安装 ☆1
1.2pip-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.1future-0.18.3.tar.gzpypi.orgPyInstaller-required-20230120.rar...\future-0.18.3>python setup.py install ☆3
2.2pefile-2022.5.30.tar.gzpypi.org同上...\pefile-2022.5.30>python setup.py install
2.3altgraph-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.4pywin32-ctypes-0.2.0.tar.gzpypi.org同上...\pywin32-ctypes-0.2.0>python setup.py install
2.5pyinstaller_hooks_contrib-2022.15-py2.py3-none-any.whl...>pip install pyinstaller-hooks-contribPyInstaller-required-5.rar...>pip install pyinstaller_hooks_contrib-2022.15-py2.py3-none-any.whl
3pyinstaller-4.8-py3-none-win32.whl...>pip install pyinstallerpyinstaller-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 列表只有源代码了——开发小组不用自己源代码管理工具,把中间需要测试的版本也放到这里了?

所以你要保留这个页面逐个尝试,才能下载到一个安装包。

如无必要,不需要用最新版本(版本中升级中的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 版本引用不到。

☆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 还有需要。连线状态安装,信任前人的文章,都没留意到有自动下载。

有关杂记:python和pyinstaller从头安装步骤(附安装包的备份)的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  3. ruby - 完全离线安装RVM - 2

    我打算为ruby​​脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn

  4. ruby-on-rails - rails 目前在重启后没有安装 - 2

    我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

  5. ruby - 如何为 emacs 安装 ruby​​-mode - 2

    我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby​​提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs

  6. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  7. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  8. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  9. ruby - Fast-stemmer 安装问题 - 2

    由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

  10. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

随机推荐