【离线环境配置】——离线安装pyinstaller

背景

有同学希望在离线环境下使用光盘导入的方式获取pyinstaller,在线方式pip install即可,同时在Scripts目录下生成pyinstaller.exe即可在命令行中调用pyinstaller命令。但离线方式需要考虑离线包的下载(包括依赖包,麻烦就在于依赖包)和安装顺序(依赖的顺序是特定的,所以安装各依赖包的顺序有讲究,否则会报错,默认pip install A是先在已安装的库中寻找A是否存在,不存在则确认依赖的B、C、D是否已安装,如果没有安装则会自动联网下载,离线状态下会多次尝试联网Retry失败后会跳过本次安装,安装失败)

步骤

pip install可安装tar.gz/whl格式的包
python 包目录/setup.py install可安装文件夹形式的包

1. 下载
在这里插入图片描述
报错找不到匹配的版本,是因为https协议,添加信任主机–trusted-host mirrors.aliyun.com即可(源的名字可能需要更换)
在这里插入图片描述
下载后会有tar.gz和whl格式
在这里插入图片描述
目标就是要pip install pyinstaller-4.3.tar.gz成功,但测试发现,其他包都可以正常安装依赖,唯独执行最后这个包的安装时报错:
在这里插入图片描述
但如果联网状态,则执行该命令正常,所以这有Bug不是简单的通过pip install各个依赖包就能解决。
经过查阅资料,从https://www.lfd.uci.edu/~gohlke/pythonlibs/(非官方包下载网址)下载
在这里插入图片描述
4.3版本的pyinstaller的whl包,替换掉原tar.gz包。
在这里插入图片描述
2. 安装
我写了README.txt如下

#编译
env:py3.7.4 anaconda3 environment called "py3.7"
compile:
	step1: conda activate py3.7
	step2: cd packages\
	step3: for %i in (*.whl) do pip install %i(会有报错ERROR,等待自动结束即可)
	step3_1: 对除pyinstaller外的安装包安装错误进行分别单独pip install xx.whl
	step4: pip install future-0.18.2.tar.gz
	step5: pip install pefile-2021.5.24.tar.gz
	step6: pip install pyinstaller-4.3-py3-none-any.whl(保证这个包是最后安装的)
exe:执行完step6后可在python安装根目录的Scripts下找到pyinstaller.exe

#EXE
“编译后的exe”目录下是我编译好的exe,可copy放于系统路径下后直接在cmd中调用pyinstaller命令。

编译成功后验证,在cmd输入pyinstaller,且通过where pyinstaller验证该exe是不是本次编译生成的。

补充

离线包下载也可通过先创建一个python虚拟环境,然后只pip install 目标包,然后freeze导出为requirements.txt(文件名可自定义),再通过:

pip download -d packages -r requirements.txt

下载整个环境需要的离线包到packages 目录下,执行对照requirements.txt的离线安装:

pip install --find-links=packages(包目录) -r requirements.txt

可用解压缩软件查看whl文件,内部有exe说明这个whl不是跨平台的,需要下载对应版本的whl文件,而通过python xx/setup.py install会根据当前平台借用当前平台的python解析器进行编译安装包,所以适用于国产化的python包离线安装

结论

一个简单的离线包安装折腾三个小时,根本原因还是原包有Bug,通过不同的包文件格式安装的结果不同很不应该,经常有pip install指定版本在线找不到,但去官网下载对应版本的离线包可以安装的配管Bug。

  • 5
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据李菜

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值