python离线批量安装依赖包_离线安装Python、Locust以及第三方依赖包

本文详细介绍了如何在离线环境下安装Python 3.7及其依赖,并通过制作requirement.txt文件批量下载所需第三方包。首先,通过编译安装Python,接着创建软链接,然后在能联网的环境下载所需包并制作成离线包,最后在目标环境使用pip离线安装这些包,确保所有依赖正确安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、安装编译Python

1.1、解压python安装包

tar -zxvf Python-3.7.0.tgz

1.2、安装依赖环境

yum -y install zlib zlib-devel

yum -y install bzip2 bzip2-devel

yum -y install ncurses ncurses-devel

yum -y install readline readline-devel

yum -y install openssl openssl-devel

yum -y install openssl-static

yum -y install xz lzma xz-devel

yum -y install sqlite sqlite-devel

yum -y install gdbm gdbm-devel

yum -y install tk tk-devel

yum -y install libffi libffi-devel

1.3、安装完成后,进入文件夹,配置编译 --prefix=后跟的是python安装路径

cd Python-3.7.0

./configure --prefix=/usr/python3

make

make install

1.4、然后创建软链接

ln -s /usr/python3/bin/python3.7 /usr/bin/python3

ln -s /usr/python3/bin/pip3 /usr/bin/pip3

1.5、验证安装结果

2、对python三方包进行离线

找一个可以联网的环境安装Python3.7,然后安装自己需要的三方包,进行以下步骤的操作

2.1、制作requirement.txt

pip3 freeze > requirement.txt

以下是从当前环境中导出的三方包的名称和对应的版本

certifi==2020.6.20

chardet==3.0.4

click==7.1.2

ConfigArgParse==1.2.3

Flask==1.1.2

Flask-BasicAuth==0.2.0

gevent==20.9.0

geventhttpclient==1.4.4

greenlet==0.4.17

idna==2.10

itsdangerous==1.1.0

Jinja2==2.11.2

locust==1.3.2

MarkupSafe==1.1.1

msgpack==1.0.0

psutil==5.7.3

pyzmq==19.0.2

requests==2.24.0

six==1.15.0

urllib3==1.25.11

Werkzeug==1.0.1

zope.event==4.5.0

zope.interface==5.1.2

requests-toolbelt==0.9.1

如果需要升级pip和setuptools也可以手动加上对应的包名和当前环境中的版本

pip==20.2.4

setuptools==50.3.2

2.2、批量下载离线包

pip download -d ./locust -r requirement.txt

[root@node235 locust]# ll

total 11656

-rwxrwxrwx 1 502 games 156576 Nov 5 15:24 certifi-2020.6.20-py2.py3-none-any.whl

-rwxrwxrwx 1 502 games 133356 Nov 5 15:24 chardet-3.0.4-py2.py3-none-any.whl

-rwxrwxrwx 1 502 games 82780 Nov 5 15:24 click-7.1.2-py2.py3-none-any.whl

-rwxrwxrwx 1 502 games 42700 Nov 5 15:24 ConfigArgParse-1.2.3.tar.gz

-rwxrwxrwx 1 502 games 94570 Nov 5 15:24 Flask-1.1.2-py2.py3-none-any.whl

-rwxrwxrwx 1 502 games 16052 Nov 5 15:24 Flask-BasicAuth-0.2.0.tar.gz

-rwxrwxrwx 1 502 games 5455891 Nov 5 15:24 gevent-20.9.0-cp37-cp37m-manylinux2010_x86_64.whl

-rwxrwxrwx 1 502 games 77226 Nov 5 15:24 geventhttpclient-1.4.4-cp37-cp37m-manylinux2010_x86_64.whl

-rwxrwxrwx 1 502 games 45628 Nov 5 15:24 greenlet-0.4.17-cp37-cp37m-manylinux1_x86_64.whl

-rwxrwxrwx 1 502 games 58811 Nov 5 15:24 idna-2.10-py2.py3-none-any.whl

-rwxrwxrwx 1 502 games 16743 Nov 5 15:24 itsdangerous-1.1.0-py2.py3-none-any.whl

-rwxrwxrwx 1 502 games 125774 Nov 5 15:24 Jinja2-2.11.2-py2.py3-none-any.whl

-rwxrwxrwx 1 502 games 658670 Nov 5 15:24 locust-1.3.2-py3-none-any.whl

-rwxrwxrwx 1 502 games 27523 Nov 5 15:24 MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl

-rwxrwxrwx 1 502 games 275560 Nov 5 15:24 msgpack-1.0.0-cp37-cp37m-manylinux1_x86_64.whl

-rwxrwxrwx 1 502 games 1504817 Nov 5 15:24 pip-20.2.4-py2.py3-none-any.whl

-rwxrwxrwx 1 502 games 465556 Nov 5 15:24 psutil-5.7.3.tar.gz

-rwxrwxrwx 1 502 games 1054485 Nov 5 15:24 pyzmq-19.0.2-cp37-cp37m-manylinux1_x86_64.whl

-rwxrwxrwx 1 502 games 61826 Nov 5 15:24 requests-2.24.0-py2.py3-none-any.whl

-rwxrwxrwx 1 502 games 54314 Nov 5 17:53 requests_toolbelt-0.9.1-py2.py3-none-any.whl

-rwxrwxrwx 1 502 games 440 Nov 5 17:52 requirement.txt

-rwxrwxrwx 1 502 games 785194 Nov 5 15:24 setuptools-50.3.2-py3-none-any.whl

-rwxrwxrwx 1 502 games 10963 Nov 5 15:24 six-1.15.0-py2.py3-none-any.whl

-rwxrwxrwx 1 502 games 127978 Nov 5 15:24 urllib3-1.25.11-py2.py3-none-any.whl

-rwxrwxrwx 1 502 games 298631 Nov 5 15:24 Werkzeug-1.0.1-py2.py3-none-any.whl

-rwxrwxrwx 1 502 games 6775 Nov 5 15:24 zope.event-4.5.0-py2.py3-none-any.whl

-rwxrwxrwx 1 502 games 237336 Nov 5 15:24 zope.interface-5.1.2-cp37-cp37m-manylinux2010_x86_64.whl

2.3、安装离线包

必需先升级pip和setuptools,否则有些包安装失败

1、安装指定的whl

[root@node235 locust]# pip3 install pip-20.2.4-py2.py3-none-any.whl

Looking in indexes: http://yum.tbsite.ne/pypi/simple/

Processing ./pip-20.2.4-py2.py3-none-any.whl

Installing collected packages: pip

Found existing installation: pip 10.0.1

Uninstalling pip-10.0.1:

Successfully uninstalled pip-10.0.1

Successfully installed pip-20.2.4

[root@node235 locust]# pip3 install setuptools-50.3.2-py3-none-any.whl

Looking in indexes: http://yum.tbsite.ne/pypi/simple/

Processing ./setuptools-50.3.2-py3-none-any.whl

Installing collected packages: setuptools

Attempting uninstall: setuptools

Found existing installation: setuptools 39.0.1

Uninstalling setuptools-39.0.1:

Successfully uninstalled setuptools-39.0.1

Successfully installed setuptools-50.3.2

2、批量安装离线包

[root@node235 locust]# pip3 install --no-index --find-links=./ -r requirement.txt

Looking in links: ./

Processing ./certifi-2020.6.20-py2.py3-none-any.whl

Processing ./chardet-3.0.4-py2.py3-none-any.whl

Processing ./click-7.1.2-py2.py3-none-any.whl

Processing ./ConfigArgParse-1.2.3.tar.gz

Processing ./Flask-1.1.2-py2.py3-none-any.whl

Processing ./Flask-BasicAuth-0.2.0.tar.gz

Processing ./geventhttpclient-1.4.4-cp37-cp37m-manylinux2010_x86_64.whl

Processing ./greenlet-0.4.17-cp37-cp37m-manylinux1_x86_64.whl

Processing ./idna-2.10-py2.py3-none-any.whl

Processing ./itsdangerous-1.1.0-py2.py3-none-any.whl

Processing ./Jinja2-2.11.2-py2.py3-none-any.whl

Processing ./locust-1.3.2-py3-none-any.whl

Processing ./MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl

Processing ./msgpack-1.0.0-cp37-cp37m-manylinux1_x86_64.whl

Processing ./psutil-5.7.3.tar.gz

Processing ./pyzmq-19.0.2-cp37-cp37m-manylinux1_x86_64.whl

Processing ./requests-2.24.0-py2.py3-none-any.whl

Processing ./six-1.15.0-py2.py3-none-any.whl

Processing ./urllib3-1.25.11-py2.py3-none-any.whl

Processing ./Werkzeug-1.0.1-py2.py3-none-any.whl

Processing ./zope.event-4.5.0-py2.py3-none-any.whl

Processing ./zope.interface-5.1.2-cp37-cp37m-manylinux2010_x86_64.whl

Requirement already satisfied: pip==20.2.4 in /usr/python3/lib/python3.7/site-packages (from -r requirement.txt (line 24)) (20.2.4)

Requirement already satisfied: setuptools==50.3.2 in /usr/python3/lib/python3.7/site-packages (from -r requirement.txt (line 25)) (50.3.2)

Processing ./requests_toolbelt-0.9.1-py2.py3-none-any.whl

Processing ./gevent-20.9.0-cp37-cp37m-manylinux2010_x86_64.whl

Using legacy 'setup.py install' for ConfigArgParse, since package 'wheel' is not installed.

Using legacy 'setup.py install' for Flask-BasicAuth, since package 'wheel' is not installed.

Using legacy 'setup.py install' for psutil, since package 'wheel' is not installed.

Installing collected packages: certifi, chardet, click, ConfigArgParse, MarkupSafe, Jinja2, Werkzeug, itsdangerous, Flask, Flask-BasicAuth, six, greenlet, zope.event, zope.interface, gevent, geventhttpclient, idna, pyzmq, msgpack, psutil, urllib3, requests, locust, requests-toolbelt

Running setup.py install for ConfigArgParse ... done

Running setup.py install for Flask-BasicAuth ... done

Running setup.py install for psutil ... done

Successfully installed ConfigArgParse-1.2.3 Flask-1.1.2 Flask-BasicAuth-0.2.0 Jinja2-2.11.2 MarkupSafe-1.1.1 Werkzeug-1.0.1 certifi-2020.6.20 chardet-3.0.4 click-7.1.2 gevent-20.9.0 geventhttpclient-1.4.4 greenlet-0.4.17 idna-2.10 itsdangerous-1.1.0 locust-1.3.2 msgpack-1.0.0 psutil-5.7.3 pyzmq-19.0.2 requests-2.24.0 requests-toolbelt-0.9.1 six-1.15.0 urllib3-1.25.11 zope.event-4.5.0 zope.interface-5.1.2

2.4、验证

[root@node235 locust]# pip3 list

Package Version

----------------- ---------

certifi 2020.6.20

chardet 3.0.4

click 7.1.2

ConfigArgParse 1.2.3

Flask 1.1.2

Flask-BasicAuth 0.2.0

gevent 20.9.0

geventhttpclient 1.4.4

greenlet 0.4.17

idna 2.10

itsdangerous 1.1.0

Jinja2 2.11.2

locust 1.3.2

MarkupSafe 1.1.1

msgpack 1.0.0

pip 20.2.4

psutil 5.7.3

pyzmq 19.0.2

requests 2.24.0

requests-toolbelt 0.9.1

setuptools 50.3.2

six 1.15.0

urllib3 1.25.11

Werkzeug 1.0.1

zope.event 4.5.0

zope.interface 5.1.2

2.5、创建locust软连接

ln -s /usr/python3/bin/locust /usr/bin/locust

[root@node235 locust]# ln -s /usr/python3/bin/locust /usr/bin/locust

[root@node235 locust]# locust

Could not find any locustfile! Ensure file ends in '.py' and see --help for available options.

> 个人博客 [蜗牛]www.codeobj.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值