离线安装Python、Locust以及第三方依赖包

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、验证安装结果

file

file

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.

个人博客 蜗牛

你可能感兴趣的:(离线安装Python、Locust以及第三方依赖包)