Python之离线安装第三方库

1、场景介绍

在一些服务器上,我们搭建完Python环境之后,因为服务器的网络限制原因,不能直接通过pip命令下载安装Python的依赖包。
因此,我们需要在可以正常上网的服务器上下载好所需的依赖包文件,然后拷贝到目标服务器,通过pip在目标服务器上进行安装。

2、准备requirements.txt文件

requirements.txt文件罗列的是依赖包列表,表示你要下载的依赖包以及对应的版本。
该文件可以通过两种方式创建,分别是pip命令创建和手工创建。

jupyter==1.0.0
notebook==6.1.0

(1)pip命令创建requirements.txt,可以把当前服务器的Python依赖包生成列表到requirements.txt文件中。
【pip list】
【pip freeze >requirements.txt】


(2)手工创建requirements.txt,直接新建一个requirements.txt文件,然后按照格式填写所需依赖包以及对应版本号。

3、下载依赖包

注意:该步骤需要在可以正常上网的服务器上下载。下载的依赖包文件如图2所示。

pip download -r requirements.txt -d packages/ -i https://pypi.tuna.tsinghua.edu.cn/simple

其中:(packages/是要生成的文件夹,存放下载的依赖包文件;https://pypi.tuna.tsinghua.edu.cn/simple是镜像源地址)。

4、安装依赖包

准备好依赖包之后,就可以在无法使用pip命令下载安装依赖包的目标服务器上进行安装了。
使用命令之前,需要把packsges文件夹、requirements.txt文件拷贝到目标服务器,下面以requests依赖包为例。

pip install --no-index --find-links=./packages -r ./requirements.txt

(其中:./packsges是依赖包的所在路径;./requirements.txt是依赖包的列表路径)。

D:\zjj\pip>pip list
Package                           Version
--------------------------------- ---------
anyio                             3.7.1
argon2-cffi                       21.3.0
argon2-cffi-bindings              21.2.0
arrow                             1.2.3
asttokens                         2.2.1
async-lru                         2.0.4
attrs                             23.1.0
Babel                             2.12.1
backcall                          0.2.0
beautifulsoup4                    4.12.2
bleach                            6.0.0
certifi                           2023.7.22
cffi                              1.15.1
charset-normalizer                3.2.0
colorama                          0.4.6
comm                              0.1.3
debugpy                           1.6.7
decorator                         5.1.1
defusedxml                        0.7.1
distlib                           0.3.7
exceptiongroup                    1.1.2
executing                         1.2.0
fastjsonschema                    2.18.0
filelock                          3.12.2
fqdn                              1.5.1
idna                              3.4
importlib-metadata                6.8.0
importlib-resources               6.0.0
ipykernel                         6.25.0
ipython                           8.12.2
ipython-genutils                  0.2.0
ipywidgets                        8.0.7
isoduration                       20.11.0
jedi                              0.19.0
Jinja2                            3.1.2
json5                             0.9.14
jsonpointer                       2.4
jsonschema                        4.18.4
jsonschema-specifications         2023.7.1
jupyter_client                    8.3.0
jupyter-console                   6.6.3
jupyter-contrib-core              0.4.2
jupyter_core                      5.3.1
jupyter-events                    0.6.3
jupyter-highlight-selected-word   0.2.0
jupyter-lsp                       2.2.0
jupyter-nbextensions-configurator 0.6.3
jupyter_server                    2.7.0
jupyter_server_terminals          0.4.4
jupyterlab                        4.0.3
jupyterlab-pygments               0.2.2
jupyterlab_server                 2.24.0
jupyterlab-widgets                3.0.8
lxml                              4.9.3
MarkupSafe                        2.1.3
matplotlib-inline                 0.1.6
mistune                           3.0.1
nbclient                          0.8.0
nbconvert                         7.7.3
nbformat                          5.9.1
nest-asyncio                      1.5.7
notebook                          7.0.0
notebook_shim                     0.2.3
overrides                         7.3.1
packaging                         23.1
pandocfilters                     1.5.0
parso                             0.8.3
pickleshare                       0.7.5
pip                               23.2.1
pipenv                            2023.7.23
pkgutil_resolve_name              1.3.10
platformdirs                      3.10.0
prometheus-client                 0.17.1
prompt-toolkit                    3.0.39
psutil                            5.9.5
pure-eval                         0.2.2
pycparser                         2.21
Pygments                          2.15.1
python-dateutil                   2.8.2
python-json-logger                2.0.7
pytz                              2023.3
pywin32                           306
pywinpty                          2.0.11
PyYAML                            6.0.1
pyzmq                             25.1.0
qtconsole                         5.4.3
QtPy                              2.3.1
referencing                       0.30.0
requests                          2.31.0
rfc3339-validator                 0.1.4
rfc3986-validator                 0.1.1
rpds-py                           0.9.2
Send2Trash                        1.8.2
setuptools                        68.0.0
six                               1.16.0
sniffio                           1.3.0
soupsieve                         2.4.1
stack-data                        0.6.2
terminado                         0.17.1
tinycss2                          1.2.1
tomli                             2.0.1
tornado                           6.3.2
traitlets                         5.9.0
typing_extensions                 4.7.1
uri-template                      1.3.0
urllib3                           2.0.4
virtualenv                        20.24.2
virtualenv-clone                  0.5.7
wcwidth                           0.2.6
webcolors                         1.13
webencodings                      0.5.1
websocket-client                  1.6.1
widgetsnbextension                4.0.8
zipp                              3.16.2

D:\zjj\pip>pip install --no-index --find-links=./packages -r ./requirements.txt
Looking in links: ./packages
Processing d:\zjj\pip\packages\requests-2.28.2-py3-none-any.whl (from -r ./requirements.txt (line 1))
Requirement already satisfied: charset-normalizer<4,>=2 in d:\environment\python\python3.8.10\lib\site-packages (from requests==2.28.2->-r ./requirements.txt (line 1)) (3.2.0)
Requirement already satisfied: idna<4,>=2.5 in d:\environment\python\python3.8.10\lib\site-packages (from requests==2.28.2->-r ./requirements.txt (line 1)) (3.4)
Processing d:\zjj\pip\packages\urllib3-1.26.16-py2.py3-none-any.whl (from requests==2.28.2->-r ./requirements.txt (line 1))
Requirement already satisfied: certifi>=2017.4.17 in d:\environment\python\python3.8.10\lib\site-packages (from requests==2.28.2->-r ./requirements.txt (line 1)) (2023.7.22)
Installing collected packages: urllib3, requests
  Attempting uninstall: urllib3
    Found existing installation: urllib3 2.0.4
    Uninstalling urllib3-2.0.4:
      Successfully uninstalled urllib3-2.0.4
  Attempting uninstall: requests
    Found existing installation: requests 2.31.0
    Uninstalling requests-2.31.0:
      Successfully uninstalled requests-2.31.0
Successfully installed requests-2.28.2 urllib3-1.26.16

D:\zjj\pip>pip list
Package                           Version
--------------------------------- ---------
anyio                             3.7.1
argon2-cffi                       21.3.0
argon2-cffi-bindings              21.2.0
arrow                             1.2.3
asttokens                         2.2.1
async-lru                         2.0.4
attrs                             23.1.0
Babel                             2.12.1
backcall                          0.2.0
beautifulsoup4                    4.12.2
bleach                            6.0.0
certifi                           2023.7.22
cffi                              1.15.1
charset-normalizer                3.2.0
colorama                          0.4.6
comm                              0.1.3
debugpy                           1.6.7
decorator                         5.1.1
defusedxml                        0.7.1
distlib                           0.3.7
exceptiongroup                    1.1.2
executing                         1.2.0
fastjsonschema                    2.18.0
filelock                          3.12.2
fqdn                              1.5.1
idna                              3.4
importlib-metadata                6.8.0
importlib-resources               6.0.0
ipykernel                         6.25.0
ipython                           8.12.2
ipython-genutils                  0.2.0
ipywidgets                        8.0.7
isoduration                       20.11.0
jedi                              0.19.0
Jinja2                            3.1.2
json5                             0.9.14
jsonpointer                       2.4
jsonschema                        4.18.4
jsonschema-specifications         2023.7.1
jupyter_client                    8.3.0
jupyter-console                   6.6.3
jupyter-contrib-core              0.4.2
jupyter_core                      5.3.1
jupyter-events                    0.6.3
jupyter-highlight-selected-word   0.2.0
jupyter-lsp                       2.2.0
jupyter-nbextensions-configurator 0.6.3
jupyter_server                    2.7.0
jupyter_server_terminals          0.4.4
jupyterlab                        4.0.3
jupyterlab-pygments               0.2.2
jupyterlab_server                 2.24.0
jupyterlab-widgets                3.0.8
lxml                              4.9.3
MarkupSafe                        2.1.3
matplotlib-inline                 0.1.6
mistune                           3.0.1
nbclient                          0.8.0
nbconvert                         7.7.3
nbformat                          5.9.1
nest-asyncio                      1.5.7
notebook                          7.0.0
notebook_shim                     0.2.3
overrides                         7.3.1
packaging                         23.1
pandocfilters                     1.5.0
parso                             0.8.3
pickleshare                       0.7.5
pip                               23.2.1
pipenv                            2023.7.23
pkgutil_resolve_name              1.3.10
platformdirs                      3.10.0
prometheus-client                 0.17.1
prompt-toolkit                    3.0.39
psutil                            5.9.5
pure-eval                         0.2.2
pycparser                         2.21
Pygments                          2.15.1
python-dateutil                   2.8.2
python-json-logger                2.0.7
pytz                              2023.3
pywin32                           306
pywinpty                          2.0.11
PyYAML                            6.0.1
pyzmq                             25.1.0
qtconsole                         5.4.3
QtPy                              2.3.1
referencing                       0.30.0
requests                          2.28.2
rfc3339-validator                 0.1.4
rfc3986-validator                 0.1.1
rpds-py                           0.9.2
Send2Trash                        1.8.2
setuptools                        68.0.0
six                               1.16.0
sniffio                           1.3.0
soupsieve                         2.4.1
stack-data                        0.6.2
terminado                         0.17.1
tinycss2                          1.2.1
tomli                             2.0.1
tornado                           6.3.2
traitlets                         5.9.0
typing_extensions                 4.7.1
uri-template                      1.3.0
urllib3                           1.26.16
virtualenv                        20.24.2
virtualenv-clone                  0.5.7
wcwidth                           0.2.6
webcolors                         1.13
webencodings                      0.5.1
websocket-client                  1.6.1
widgetsnbextension                4.0.8
zipp                              3.16.2

D:\zjj\pip>

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2023年11月3日
下一篇 2023年11月3日

相关推荐