呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!
Posted 贫僧想吃肉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!相关的知识,希望对你有一定的参考价值。
文章目录
项目场景
银行项目,出于安全性考虑,无法连接外网; 平常安装 python 第三方库,直接 pip install xxx 即可,一般的包会自动连带安装好相关依赖包,但在这里行不通……解决方案
怎么办呢?
打住……上错表情包了
还能怎么办,干就完了,离线安装!!!
第一步:先正常安装
由于我环境上之前就有装 python,所以为了试验,这里安装另一个新的 python,如何在同一台电脑上安装不同版本的python并可以正常运行呢?其实直接安装即可,安装之后再重命名一下 python.exe
比如:修改 python.exe 为 python36.exe,效果如下图:
原理和环境变量有关,环境变量里的第一个指向 python.exe 的会被执行,其他的python.exe 都不会被运行,重命名后,就是第一个指向 python3.6.exe 或者 别的 pythonx.x.exe 了,就会被执行
言归正传,现在使用 python36.exe 来安装
1.先查看都有哪些库
python36 -m pip list
2.根据提示,先升级一下 pip
python36 -m pip install --upgrade pip
3.开始安装,这里拿 pyautogui 来试验
python36 -m pip install pyautogui
可以看到,装了一堆其他的库啊……
再查看现在都有哪些库
.啊……这……还好,也没有很多“隐藏的”依赖库
这时候把库导出来到 wtf.txt 里……当然,规范来讲是 requirements.txt ……可这是在线安装才需要导出来,我这导出来有 *** 的 ** 用……
python36 -m pip freeze >> requirement.txt
那……一个个下载吧(有时间有能耐的可以写个爬虫,我这就不试了,别问,问就是不会)
第二步:下载并安装离线包
1.上 PyPi 搜 相关 离线包
2.选择版本
版本的选择,首先要根据上面 pip list 指定的版本去选,如果 Download files 里头没有相关的版本,则去 Release history 里找,里面是历史版本
版本如何看呢?
比如:
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 ,逐个下载(还别说,可能找个现成的爬虫会来得更快……)
可以看到,这里还有 zip 的,那先拿它来试试(我这里试验的时候需要卸载python36,再安装python36,确保一切都是最开始的样子,再断网,用这些第三方库离线包来安装……为什么不用python虚拟环境?因为害怕有什么幺蛾子~)
python36 -m pip install C:\\Users\\big_c\\Desktop\\test_20210813\\PyTweening-1.0.3.zip
先尝试安装,再根据提示,把需要做的补好,比如这里,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 相同
比如像这样之后,就可以删除 pillow 以及 pip 的安装命令
最后,剩下三个库一直无法安装:
分别是:PyMsgBox、PyScreeze 以及 PyAutoGUI
但查看 setuptools,版本是符合要求的,很奇怪,与其说很奇怪,不如说……
原来我一开始喜欢 .whl 格式的是没错的!!!
4.解决疑难杂症
刚刚那搞不定的几个包,除了最后一个,有可能是需要依赖前面的库而无法安装之外,PyMsgBox、PyScreeze 的提示都是和 setuptools 有关,换一个安装方法:
这里参考了网上的一点资料:window下python怎么离线安装tar.gz
4.1 先将这两个库分别解压
解压后均可看到有个 setup.py 文件
4.2 使用 setup.py 安装
当前目录下,按住 shift + 鼠标右键,选择 “在此处打开 Power 窗口”,打开 powershell
python36 setup.py install
我又尝试了普通的 cmd 命令框,也可以执行(但这里就需要使用绝对路径,因为不在其目录下)
接下来最后一步了,安装我们一开始想安装的第三方库: pyautogui !!!(我还用回 pip 的方法,当然解压后再用 setup.py 也是可以的)
5.见证奇迹的时刻
查看下库的安装情况,并 import 一把 !
没有报错!!!!!!!
小结
1.先在能联网的电脑上,pip 安装想要安装的第三方库
2.查看所有的库及其版本 pip list
3.将所有的库下载到本地,并移动到目标电脑上
4.逐个离线安装,先使用简单的方法:pip
5.安装不上的,将其解压,使用其包里的 setup.py 来安装
6.全部安装好后,不要嘚瑟,import 成功了才是成功!
7.不得不感叹,pip 是真的强大(当然,连网后才是真的强大!)
8.人生苦短,最好连网
统一声明
1.本文为原创博客,原创实属不易,若转载请注明出处,感谢~
2.关于原创博客内容,可能会有部分内容参考自互联网,如有原创链接会声明引用;如找不到原创链接,在此声明如有侵权请联系删除哈~
3.看完有帮助,点个赞呗,多谢了~
以上是关于呕心沥血整理,python离线安装第三方库(带疑难杂症实例)!!!的主要内容,如果未能解决你的问题,请参考以下文章
flutter sdk升级 kotlin升级 gradle升级 使用flutter upgrade命令 以及依赖的各项配置更新 呕心沥血 踩坑无数 专治疑难杂症
flutter sdk升级 kotlin升级 gradle升级 使用flutter upgrade命令 以及依赖的各项配置更新 呕心沥血 踩坑无数 专治疑难杂症