离线环境安装依赖包
在离线环境下因为没有网络无法直接使用pip install下载依赖包,只能靠上传文件来安装
一般会有这个想法:在有网的地方下载所有依赖包,上传到离线环境,然后一个个安装
随后就会遇到以下问题:
- 手动人工确认依赖关系
- 手动人工确认安装顺序
然后就会踩到这些坑:
- 你会发现A依赖B,于是你下载了B但是你又发现B又依赖CDE,E又依赖F,于是血压逐渐升高了。
- 你发现你需要搞一个依赖的“族谱”才能弄明白他们的安装顺序,你一边下载,一遍帮助依赖包整理“族谱”。
- 你发现你必须下载和python版本匹配的包,而且你所需的依赖包之间也存在着版本的相互制约关系,搞不好就乱了套了。
- 心平气和应对他人疑问句:“你不会在一个个的下载,一个个的装吧?”
那么如何快速确定需要安装的依赖包之间的依赖关系及版本制约,且快速获取到安装文件呢?
答案是:好好使用pip
操作步骤
在有网机器下载依赖包
pip download -d ./放包目录 要下的包
做一个文件列表
在依赖包的同级目录下(当然也没说必须得同级目录下),把刚刚下载的文件名写入到一个文件中,例如requirements.txt:
APScheduler-3.10.4-py3-none-any.whl
asgiref-3.4.1-py3-none-any.whl
backports.zoneinfo-0.2.1-cp36-cp36m-manylinux1_x86_64.whl
Django-3.2.23-py3-none-any.whl
django_apscheduler-0.6.2-py3-none-any.whl
django_js_asset-2.0.0-py3-none-any.whl
importlib_metadata-4.8.3-py3-none-any.whl
importlib_resources-5.4.0-py3-none-any.whl
pytz-2023.3.post1-py2.py3-none-any.whl
pytz_deprecation_shim-0.1.0.post0-py2.py3-none-any.whl
six-1.16.0-py2.py3-none-any.whl
sqlparse-0.4.4-py3-none-any.whl
typing_extensions-4.1.1-py3-none-any.whl
tzdata-2023.4-py2.py3-none-any.whl
tzlocal-4.2-py3-none-服务器托管网any.whl
zipp-3.6.0-py3-none-any.whl
离线环境安装
把requirements.txt中涉及到的文件也就是要安装的文件,拷贝到离线环境,执行命令:
pip install --no-index --find-links=./依赖包目录 -r requirements.txt
检查、结束
你可以使用
pip list
查看依赖包安装情况
说明
- requirements.txt中的依赖名称需要自己手动调整吗?
- requi服务器托管网rements.txt 文件中的依赖包并不需要按照它们之间的依赖关系排序,pip会自动处理这些依赖关系。当你运行 pip install -r requirements.txt 时,pip会解析每个库的依赖,并确保先安装所有必要的前置依赖。
- pip install –no-index –find-links=./packages -r requirements.txt这个命令只能安装whl文件吗?,无法安装tar这种压缩文件吧?
- pip install –no-index –find-links=./packages -r requirements.txt 这个命令不仅可以安装whl文件,也可以处理tar.gz或zip格式的源码包。当pip在指定目录下查找依赖时,如果发现匹配的源码包,它会解压并执行其中的setup.py进行安装。
- 但是,使用wheel文件(.whl)通常比源码包(.tar.gz 或 .zip)安装更快捷,因为wheel是预编译的二进制分发格式,无需再进行编译步骤。因此,在离线环境下,如果你有选择的话,推荐优先使用wheel文件以获得更好的性能和可靠性。
- 详细讲解一下pip install –no-index –find-links=./依赖包目录 -r requirements.txt这条命令
pip install –no-index –find-links=./依赖包目录 -r requirements.txt 是一个用于离线安装Python依赖包的命令。下面是对各个参数详细说明:
- pip install: 这是pip的基本命令,用于安装指定的Python包。
- –no-index: 这个选项告诉pip不要从默认的Python Package Index(PyPI)或任何其他索引服务器上查找和下载包。在离线环境下使用此选项非常重要,因为它避免了pip尝试在线查找和下载依赖包。
–find-links: 这个选项后面跟随的是本地文件系统的路径,指向包含wheel文件或者源码包(tar.gz或zip格式)的目录。当pip需要安装某个包时,它会首先在这个目录下查找是否有匹配的包文件。 例如:–find-links=./依赖包目录 表示pip会在当前工作目录下的“依赖包目录”中寻找要安装的包。 - -r requirements.txt: 这个选项指定了一个文本文件,其中包含了项目所需的Python包及其版本信息。pip会读取这个文件,并按照文件中列出的顺序逐个尝试安装这些包。即使包之间存在依赖关系,pip也会自动处理并确保正确安装所有依赖项。
总结来说,这个命令的作用是在离线环境下,根据 requirements.txt 文件中的依赖列表,从指定的本地目录中找到相应的包文件进行安装。这样可以在没有互联网连接的情况下搭建出与线上环境一致的Python项目依赖环境。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net