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.2D:\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, requestsAttempting uninstall: urllib3Found existing installation: urllib3 2.0.4Uninstalling urllib3-2.0.4:Successfully uninstalled urllib3-2.0.4Attempting uninstall: requestsFound existing installation: requests 2.31.0Uninstalling requests-2.31.0:Successfully uninstalled requests-2.31.0
Successfully installed requests-2.28.2 urllib3-1.26.16D:\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.2D:\zjj\pip>