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

news2024/11/18 6:36:16

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同上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
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 安装目录打包复制到其他计算机上也能用,除非某个包需要用到外部的动态库没安装。
setup-1

环境变量

安装程序默认会自动加环境变量,如果系统重装只了丢了,在 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 小版本号需要用不同的库版本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/174183.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

字节跳动青训营--前端day3

文章目录前言一、写好JavaScript的一些原则二、各司其职三、组件封装四、过程抽象前言 仅以此文章记录学习 一、写好JavaScript的一些原则 各司其职:让HTML、CSS和JavaScript职能分离组件封装:好的UI组件具备正确性、扩展性、复用性过程抽象&#xff1…

JVM堆内存分配策略(深入理解Java虚拟机第三章)

堆内存模型: 年轻代: 根据分代算法,默认小于15岁的对象称作年轻代,年轻代分为Eden区、幸存者区(Survivor Form,Survivor To),三者比例为:8:1:1 Eden 分区:对象出生分区…

Java 实现几种 异步的实现方式

前言 异步执行对于开发者来说并不陌生,在实际的开发过程中,很多场景多会使用到异步,相比同步执行,异步可以大大缩短请求链路耗时时间,比如:发送短信、邮件、异步更新等,这些都是典型的可以通过…

FL水果21最新版本电脑编曲软件FL Studio更新

电脑编曲软件也就是我们常说的宿主软件,英文简称DAW。 FL Studio俗称水果,是一款开发初衷为了电子音乐制作的宿主软件。内置了非常多优秀的合成器以及效果器插件,极为适合于电子音乐的编排。同时FL Studio支持第三方音源插件导入,…

[RootersCTF2019]ImgXweb

目录 信息收集 JWT伪造 工具使用 寻找秘钥 curl 补充知识 信息收集 进入查看源码未发现重要信息 注册admin失败,猜测应该需要垂直越权 先随意注册个账户coleak 登录后发现可以文件上传,上传shell后发现不能连接,执行命令也没有回显…

Linux常用命令——tailf命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) tailf 在屏幕上显示指定文件的末尾若干行内容,通常用于日志文件的跟踪输出。 补充说明 tailf命令几乎等同于tail -f,严格说来应该与tail --followname更相似些。当文件改名之后它也能继…

微服务注册中心-Eureka

微服务注册中心-Eureka微服务注册中心-Eureka一、注册中心(Eureka)二、Euraka实现1.eureka-server端(1)新建项目,引入pom依赖(2)编写启动类,引入开启注册中心的注解(3&am…

py第八章 面向对象 笔记

8.1类与对象的基础运用类是抽象的,对象是类的实例8.1.1类的定义class 类名:属性名属性值def 方法名(self):方法体类名:大驼峰命名法:首字母一般为大写方法参数列表中的第一个参数是一个指代对象的默认参数selfclass Car:wheels4def drive(self):print(行…

非常好用,绝对未来黑马的 Python 开源测试框架 PySimpleTest

非常好用,绝对未来黑马的 Python 开源测试框架 PySimpleTest 简单介绍 PySimpleTest 是一个非常简洁开源的python代码测试框架,作者是 https://github.com/Time-Coder?tabstars 你可以在以下网站找到PyPI索引:https://pypi.org/project/P…

CSS 排行榜

CSS 排行榜 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>排行榜</title><style type"text/css">* {margin: 0;padding: 0;}/* 容器 */.rank-container {width: 400px;color: #333;font-size: 14p…

go 常用命令

巩固学习最好的方法是通过go help看文档 GO语言规范文档 终端执行命令 go help environment GOBIN The directory where ‘go install’ will install a command. go 命令使用 go <command> [arguments]command&#xff1a; The commands are:bug start a b…

十、MySQL 聚合函数、分组查询及过滤分组

文章目录一、聚合函数1.1 COUNT()函数1.2 SUM()函数1.3 AVG()函数1.4 MAX()函数1.5 MIN()函数二、分组查询及过滤分组2.1 创建分组2.2 使用HAVING过滤分组2.3 WHERE和HAVING的对比前置知识&#xff1a; 一、数据库开发与实战专栏导学及数据库基础概念入门 二、MySQL 介绍及 MyS…

你知道这些快捷键吗?

今天就给大家带来常用的电脑快捷键&#xff0c;让你的办公和学习效率加倍&#xff0c;一起来看看吧&#xff01; 快捷键一&#xff1a;快速切换窗口 想要快速切换电脑正在使用的窗口程序&#xff0c;就可以使用“AltTab”键即可快速切换。先按住“Alt”按键&#xff0c;再按“T…

GO语言的实战学习(猜谜游戏和在线词典)| 青训营笔记

一.GO语言的实战学习 1.1 前言 在上文我们急速学习了Go语言的入门&#xff0c;今天我们来学习一下Go语言的实战 本专栏代码&#xff0c;源码打包下载地址如下&#xff1a; https://download.csdn.net/download/weixin_52908342/87389481 二.猜谜游戏 1.导入依赖包&#xff…

模拟实现一个简单的命令行解释器(shell)

目录 前言 环境变量与本地变量 和环境变量相关的命令 获取环境变量的三种方法 第一种 第二种 第三种 进程地址空间 页表 为什么存在进程地址空间 第一 第二 第三 进程控制 进程的产生 进程终止 进程等待 进程替换 模拟实现一个shell 前言 我们通过各种指令来实现…

脚手架2 以nacos为注册中心,基于Gateway构架网关

在前一步上已经说明&#xff0c;组件脚手架的第一步就是构建注册中心&#xff0c;由于采用nacos&#xff0c;这些将直接放在配置文件中实现&#xff0c;不再单独搭建eureka。 spring nacos jdk各组件依赖版本推荐 Spring Boot&#xff0c;Spring Cloud&#xff0c;Spring Clo…

HTC Cosmos手柄的坑

HTC Cosmos手柄的坑Unreal蓝图通过手柄射线操作UI用浏览器插件进行游戏界面设计Cosmos手柄遇到的问题Unreal蓝图通过手柄射线操作UI Unreal蓝图通过手柄射线操作UI很简单&#xff0c;虚幻提供一个WidgetInteraction的组件&#xff0c;可以模拟键盘和鼠标操作。 Enable Hit Te…

【最优潮流】二阶锥松弛在配电网最优潮流计算中的应用(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

组件化 – 额外知识补充

1、组件的生命周期 1.1、认识生命周期 什么是生命周期呢&#xff1f; 生物学上&#xff0c;生物生命周期指得是一个生物体在生命开始到结束周而复始所历经的一系列变化过程&#xff1b;每个组件都可能会经历从创建、挂载、更新、卸载等一系列的过程&#xff1b;在这个过程中…

升级 Node 版本教程

【node】升级 Node 版本教程 文章目录 Window 系统Mac 或 Linux系统 Window 系统 window系统升级node只能到node官网下载window安装包来覆盖之前的node。node 安装教程附下载地址&#xff1a;https://blog.csdn.net/qq_45677671/article/details/114535955因为 n 模块是不支…