呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!

文章目录

  • 项目场景
  • 解决方案
    • 补充
    • 第一步:先正常安装
      • 1.先查看都有哪些库
      • 2.根据提示,先升级一下 pip
      • 3.开始安装,这里拿 pyautogui 来试验
    • 第二步:下载并安装离线包
      • 1.上 [PyPi](https://pypi.org/) 搜 相关 离线包
      • 2.选择版本
      • 3.下载所有需要的包,并 pip 安装
      • 4.解决疑难杂症
        • 4.1 先将这两个库分别解压
        • 4.2 使用 setup.py 安装
      • 5.见证奇迹的时刻
    • 小结
  • 统一声明


项目场景

  银行项目,出于安全性考虑,无法连接外网; 平常安装 python 第三方库,直接 pip install xxx 即可,一般的包会自动连带安装好相关依赖包,但在这里行不通……

解决方案

怎么办呢?

呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第1张图片
打住……上错表情包了
呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第2张图片
还能怎么办,干就完了,离线安装!!!


补充

后期踩坑过程中,找到了更有效的解决方法,请移步:离线安装python包_补充

第一步:先正常安装

  由于我环境上之前就有装 python,所以为了试验,这里安装另一个新的 python,如何在同一台电脑上安装不同版本的python并可以正常运行呢?其实直接安装即可,安装之后再重命名一下 python.exe
比如:修改 python.exe 为 python36.exe,效果如下图:
呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第3张图片
  原理和环境变量有关,环境变量里的第一个指向 python.exe 的会被执行,其他的python.exe 都不会被运行,重命名后,就是第一个指向 python3.6.exe 或者 别的 pythonx.x.exe 了,就会被执行
呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第4张图片
言归正传,现在使用 python36.exe 来安装

1.先查看都有哪些库

python36 -m pip list

呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第5张图片

2.根据提示,先升级一下 pip

python36 -m pip install --upgrade pip

呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第6张图片

3.开始安装,这里拿 pyautogui 来试验

python36 -m pip install pyautogui

呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第7张图片
可以看到,装了一堆其他的库啊……
再查看现在都有哪些库
呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第8张图片
.啊……这……还好,也没有很多“隐藏的”依赖库
呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第9张图片
这时候把库导出来到 wtf.txt 里……当然,规范来讲是 requirements.txt ……可这是在线安装才需要导出来,我这导出来有 *** 的 ** 用……

python36 -m pip freeze >> requirement.txt

呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第10张图片
那……一个个下载吧(有时间有能耐的可以写个爬虫,我这就不试了,别问,问就是不会)
呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第11张图片

第二步:下载并安装离线包

1.上 PyPi 搜 相关 离线包

呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第12张图片

2.选择版本

  版本的选择,首先要根据上面 pip list 指定的版本去选,如果 Download files 里头没有相关的版本,则去 Release history 里找,里面是历史版本
呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第13张图片
版本如何看呢?
比如:
Pillow-8.3.1-1-cp36-cp36m-win_amd64.whl (3.2 MB)   以及
Pillow-8.3.1-cp36-cp36m-win32.whl (2.8 MB)
Pillow-X.x.x-x 版本号
cp36 —> 适用于 python 3.6.x,大多数解释器都是 cpython,一般说的 python 也是指 cpython
amd64 —> 适用于 64 位操作系统
win32 —> 适用于 32 位操作系统

另外,还有类似   pyflakes-2.3.1-py2.py3-none-any.whl (68.8 kB)   的
py2.py3-none-any —> 适用于 python2.x 以及 python3.x;适用于 32/64 位操作系统,也不限制 windows 还是 linux 等,就是 any,无限制,下这个就对了!

可以看到这里只有一个,即类似   PyAutoGUI-0.9.53.tar.gz (59.0 kB)   的,是 tar.gz 包,具体 和 whl 包的差异没仔细看,但我离线安装方式一样,简单地说,对我而言没区别~但我个人更倾向于 whl 包

3.下载所有需要的包,并 pip 安装

  根据刚刚的 pip list ,逐个下载(还别说,可能找个现成的爬虫会来得更快……)
呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第14张图片
  可以看到,这里还有 zip 的,那先拿它来试试(我这里试验的时候需要卸载python36,再安装python36,确保一切都是最开始的样子,再断网,用这些第三方库离线包来安装……为什么不用python虚拟环境?因为害怕有什么幺蛾子~)

python36 -m pip install C:\Users\big_c\Desktop\test_20210813\PyTweening-1.0.3.zip

呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第15张图片
  先尝试安装,再根据提示,把需要做的补好,比如这里,PyTweening-1.0.3.zip 装不上,因为 pip 版本不够高,提示是在线升级 pip 的方法,咱这使用 离线安装升级 pip 的方法

python36 -m pip install C:\Users\big_c\Desktop\test_20210813\pip-21.2.4-py3-none-any.whl

  安装升级好 pip 后,再安装 PyTweening,发现 .zip 或者 .tar.gz 或者 .whl,命令格式都是一样的,都是类似

python -m pip install XXX_abs_path.xxx.whl

  那真的要一个个慢慢装吗?是,但也不是!因为你不知道安装顺序,不知道需要重复多少次才能真正安装好,所以偷个懒,写个小代码

import os

dir_path = r'C:\Users\big_c\Desktop\test_20210813'
for file in os.listdir(dir_path):
    print(f'python36 -m pip install {os.path.join(dir_path, file)}')

r""" 运行效果:
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\MouseInfo-0.1.3.tar.gz
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\Pillow-8.3.1-1-cp36-cp36m-win_amd64.whl
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\pip-21.2.4-py3-none-any.whl
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\PyAutoGUI-0.9.53.tar.gz
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\PyGetWindow-0.0.9.tar.gz
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\PyMsgBox-1.0.9.tar.gz
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\pyperclip-1.8.2.tar.gz
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\PyRect-0.1.4.tar.gz
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\PyScreeze-0.1.27.tar.gz
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\PyTweening-1.0.3.zip
python36 -m pip install C:\Users\big_c\Desktop\test_20210813\setuptools-40.6.2-py2.py3-none-any.whl
"""

  把运行结果拷贝到命令行,执行过程会报错,没关系,拷贝执行几次即可,因为已经安装的并不会报错,当然你也可以把安装好了的删掉,安装过程肯定会更快点……直到最后 pip list 和在线安装的 pip list 相同
呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第16张图片
  比如像这样之后,就可以删除 pillow 以及 pip 的安装命令
最后,剩下三个库一直无法安装:
呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第17张图片
呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第18张图片

分别是:PyMsgBox、PyScreeze 以及 PyAutoGUI
但查看 setuptools,版本是符合要求的,很奇怪,与其说很奇怪,不如说……
呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第19张图片
原来我一开始喜欢 .whl 格式的是没错的!!!

4.解决疑难杂症

  刚刚那搞不定的几个包,除了最后一个,有可能是需要依赖前面的库而无法安装之外,PyMsgBox、PyScreeze 的提示都是和 setuptools 有关,换一个安装方法:
这里参考了网上的一点资料:window下python怎么离线安装tar.gz

4.1 先将这两个库分别解压

呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第20张图片
解压后均可看到有个 setup.py 文件

4.2 使用 setup.py 安装

当前目录下,按住 shift + 鼠标右键,选择 “在此处打开 Power 窗口”,打开 powershell

python36 setup.py install

呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第21张图片
我又尝试了普通的 cmd 命令框,也可以执行(但这里就需要使用绝对路径,因为不在其目录下)
呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第22张图片
接下来最后一步了,安装我们一开始想安装的第三方库: pyautogui !!!(我还用回 pip 的方法,当然解压后再用 setup.py 也是可以的)
呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第23张图片

5.见证奇迹的时刻

呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第24张图片
查看下库的安装情况,并 import 一把 !
呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第25张图片
没有报错!!!!!!!

小结

1.先在能联网的电脑上,pip 安装想要安装的第三方库
2.查看所有的库及其版本 pip list
3.将所有的库下载到本地,并移动到目标电脑上
4.逐个离线安装,先使用简单的方法:pip
5.安装不上的,将其解压,使用其包里的 setup.py 来安装
6.全部安装好后,不要嘚瑟,import 成功了才是成功!
7.不得不感叹,pip 是真的强大(当然,连网后才是真的强大!)
8.人生苦短,最好连网


统一声明

1.本文为原创博客,原创实属不易,若转载请注明出处,感谢~
2.关于原创博客内容,可能会有部分内容参考自互联网,如有原创链接会声明引用;如找不到原创链接,在此声明如有侵权请联系删除哈~
3.看完有帮助,点个赞呗,多谢了~
呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!_第26张图片

你可能感兴趣的:(其他,python,pip)