python库—本地安装文件下载🚀
在项目中需要在内网环境下配置python的环境,因此需要将用于安装python库的文件下载到本地传到内网环境当中然后再安装,通过这契机我开始了解了一下如何离线下载安装python的第三方库,以及配置本地的Nexus镜像源等事项,仔细研究发现这里有很多细节直接推敲的,上网搜了搜相关的教程,看了之后emmm,故有了这篇文章。
文章目录
- python库—本地安装文件下载🚀
- 1.从PYPI官网查找需要的第三方库
- 2.PYPI中库的源代码压缩包的下载和安装(不推荐)
- 3.安装wheel文件
- 3.1 通用版本的wheel文件
- 3.1.1 相对路径安装-更稳妥
- 3.1.2 绝对路径安装-更快捷
- 3.2 细分版本的wheel文件
- 3.2.1 windows系统的wheel文件版本选择
- 3.2.2 linux系统的wheel文件版本选择
- 3.2.3 macos系统的的wheel文件版本选择
- 3.2.4 细分版本安装
- 4.总结
1.从PYPI官网查找需要的第三方库
如果需要本地安装一个软件包或者叫第三方库,就需要先把用于本地安装的文件从统一管理软件安装包的网站上下载下来,python的whl文件的官方下载网站为PIPY:https://pypi.org/,所有的开源软件包都可以在这上面找到,输入想要的软件包或者库的名字即可进入对应的介绍和下载页面。
在搜索框内输入要下载的库的名称这里以Numpy为例,搜索之后找到对应的软件包。
点进去之后可以在导航栏部分,发布历史(也就是历史版本)以及文件下载部分,默认情况下点击文件下载Download files
,默认会下载最新的版本—在当前例子中下载的就是1.26.4—在有些时候可能需要选择非最新的一些指定的版本,此时需要点击历史版本Release history
选择对应所需的历史版本即可。
点击download之后的界面
2.PYPI中库的源代码压缩包的下载和安装(不推荐)
在PIPY官网中的软件安装包的下载文件主要有三种,通用打包版本(Universal Wheels),细分版本(Platform Wheels),和源代码压缩包版本(不是wheel文件),接下来对三种下载文件进行详细介绍。
——下载
源代码压缩包版本一般都会提供在下载页面的Source Distribution
,下面点击天蓝色的源代码压缩包名称,这里选择jieba库为例,jieba只有源代码压缩包版本,(例:点击jieba-0.42.1.tar.gz
,网页就会发起一个get请求然后进入自动下载。
下载之后打开下载文件所在的文件夹然后对其进行解压(这里也可以先将浏览器里下载得到的文件移动到自己建立的文件夹里),然后点开解压之后的文件夹。
然后需要记下setup.py
文件所在的目录,之后需要在控制台进入setup.py
文件所在的路径。
在控制台输入python可以查看python的具体版本编号并进入python操作模式,在python操作模式下输入exit()即可退出python回退到命令台操作模式。
然后获得下载得到的路径:在命令控制台中通过cd
命令切换当前所在的操作路径。
注意如果你要切换的操作路径和你当前的操作路径不在一个盘的情况下,须要先执行切换根目录也就是切盘。
例如我要访问的路径是:(记得换成自己的路径)
D:\Users\Administrator\Downloads\jieba-0.42.1
你当前所在目录是:
C:\Users\Administrator
则你首先要执行下面的路径将当前操作的根目录切换到D盘:
d:
之后再执行下方命令,即可进入到numpy-1.26.4.tar.gz
所在文件夹:(记得换成自己的路径)
cd D:\Users\Administrator\Downloads\jieba-0.42.1
之后在该路径下执行下面的命令:
python setup.py install
这里报了一堆警告,说setup.py已经被废弃了,之后尽量避免使用setup.py,但是没有error因此其实它还是安装上了,但是有一些库,比如numpy如果你下载之后直接还是用setup.py安装的话就会报错,这种方法并不推荐使用,除非只有源文件,不然的话还是去下wheel轮子文件比较好。
然后可以输入pip list 命令来查看,jieba库已经成功安装到本地。
pip list
3.安装wheel文件
什么是whl文件:
whl
文件是一个 Python 软件包的分发格式,全称是 Wheel 文件。Wheel 是一个为 Python 设计的二进制包格式,它允许快速地安装 Python 库和应用程序。Wheel 文件本质上是 ZIP 格式的压缩文件,包含了用于安装软件包的所有文件。使用 Wheel 文件安装软件包由于不需要编辑通常比使用源代码安装(如.tar.gz
文件)要快。
软件包的提供wheel文件的方式有两种,一种是提供通用版本,通用版本一般只需要满足python的大版本条件例如只要是python3就行不挑操作系统和系统架构,一种是提供各个细分版本,细分版本会针对python版本,操作系统,系统使用的架构(例如Linux-X86和AMR64)的不同提供不同的wheel文件。
通用示例:flask-3.0.3-py3-none-any.whl
细分示例:numpy-1.26.4-cp310-cp310-win_amd64.whl
3.1 通用版本的wheel文件
通用的whl版本为最方便的一种,其可以直接用于各类系统的安装,而且是二进制文件不需要编译因此比安装源代码版本要快,以flask
库为例,flask的通用安装包的名称为flask-3.0.3-py3-none-any.whl
:其中py3表示可以安装在python3的所有版本上。none表示所有操作系统都能安装,包括windows、linux、macos。any表示不挑架构,例如在linux上X86和AMR64都能安装。
点击浅蓝色的flask-3.0.3-py3-none-any.whl
下载文件。
我用的谷歌浏览器鼠标移动或者各种方式打开下载到的文件夹,然后打开whl文件所在的目录。
下载之后获得whl包所在的路径,当然也可以移动到自己建立的文件夹中便于整体管理。
之后进入命令控制台进入到自己要安装的环境中,或者项目专属的虚拟环境当中,我这里进入在上一阶段建立的被我命名为python的虚拟环境中。
conda activate python
3.1.1 相对路径安装-更稳妥
然后进入到whl文件所在的文件夹目录下,再说一下,如果要访问的路径和当前操作路径不在一个盘,需要先切换当前操作盘,然后用cd再将当前操作路径切换到指定的操作路径下。由于我要访问的操作路径再D盘,所以需要先切换到D盘的路径下依次执行下面的命令。根据自己的情况切换操作路径。
d:
cd D:\Users\Administrator\Downloads
然后在当前目录下执行 pip install 文件名.whl
pip install flask-3.0.3-py3-none-any.whl
重要!
这里有个问题如果你安装的wheel文件本身还有一些依赖(库,包)是你当前环境中没有安装的则需要补充这些依赖,如果在联网状态下,则会直接联网进行下载,如果在没联网的状态下,则需要手动按照手动的方式先把基础的依赖下载下来,安装顺序上也要先安装基础依赖的wheel然后再安装,为了解决这个安装顺序的问题,需要去维护一个本地的Nexus镜像源,该部分内容会规划到后续的内容当中。
例如:我虽然只安装了一个Flask,但是最后提示信息给我安装了一堆依赖除了Flask其他都是联网补充下载的。
Successfully installed Jinja2-3.1.4 MarkupSafe-2.1.5 Werkzeug-3.0.3 blinker-1.8.2 click-8.1.7 colorama-0.4.6 flask-3.0.3 itsdangerous-2.2.0
然后输入pip list 可以看到包已经都被安装了。
3.1.2 绝对路径安装-更快捷
绝对路径安装不需要切盘但是命令比较长,(记得换成自己的路径):
pip install D:\Users\Administrator\Downloads\flask-3.0.3-py3-none-any.whl
3.2 细分版本的wheel文件
细分版本的wheel文件在下载的过程中就需要自己找了,我们以numpy为例。
首先要知道自己的python版本,在命令提示窗中切换到安装环境下,输入python就能看见了,这里是3.10。
然后确定了3.10的python版本之后需要进入下载页面下滑找到3.10版本的对应库的安装包,然后进一步根据系统再进行筛选,首先从PYPI网站中搜索numpy然后进入downloadfiles。
找到python3.10版本的安装包所在的部分。
3.2.1 windows系统的wheel文件版本选择
其中windows的版本有两个。
其中numpy-1.26.4-cp310-cp310-win_amd64.whl
,是针对windows的64位系统的也是目前绝大多数的人使用的,
如果想看一下自己的操作系统是多少位的,可以进入控制面板,然后查看方式选择小图标找到系统选项。
然后点系统进去就能看见是64位的操作系统。
所以我们选择Winddows x86-64的版本
3.2.2 linux系统的wheel文件版本选择
一般而言会有4个linux系统的wheel,大类上分为musllinux和manylinux两种
- musllinux:表示适用于使用musl库而非更常见的glibc的Linux发行版(我也不太了解)
- manylinux:表示适用于大量正常的linux版本,例如centos等,我们一般而言选择这个
然后就是linux的系统架构分为X86架构和ARM64架构,X86会更常用一些,所以普遍而言如果是Linux我们会选择下载下面这个:
然后安装方式也是一样的。
3.2.3 macos系统的的wheel文件版本选择
macOS系统有两个版本的wheel文件。
苹果的我没太用到,这里直接应用ChatGPT的回答。
结论是 M1,M2芯片选ARM64, intel芯片选x86
3.2.4 细分版本安装
细分版本的安装命令和通用版本的命令一致:
d:
cd D:\Users\Administrator\Downloads
pip install 细分版本包名.whl
操作过程依旧是进入到指定操作目录下然后 使用 pip install 细分版本包名.whl
也可以使用全局路径直接安装
4.总结
总体来说的话如果要是离线安装还是需要,配置一个nexus的本地镜像源,如果单独使用,确实非常的麻烦,之后将Nexus本地镜像源的使用和配置纳入规划。