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.