在centos 6.5系统中运行locust脚本时,发现些问题,然后解决了。centos的python版本默认是2.7。
1、Linux中下载python3
获取python3包,wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
解压Python3包
tar -xvf Python-3.7.3.tgz
创建Python3文件夹(这个用来存放Python编译后的程序,我的理解是Python3下载的是源代码,需要通过编译->安装。在编译前,可以通过./configure设置安装目录)
mkdir /usr/local/python3
2、查看openssl的安装路径,rpm -ql openssl。
安装方法
- 自动安装。安装依赖:yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ openssl-devel
或者手动安装。手动安装openssl
1.下载openssl,地址为http://www.openssl.org/source/openssl-1.0.2a.tar.gz
2.安装:
tar -xzvf openssl-1.0.2a.tar.gz
./config --prefix=/usr/local --openssldir=/usr/local/openssl
make && make install
3、设置ssl的路径
进入解压的python文件中
在Modules找到Setup.dist文件,按如下步骤修改,使编译Python的时候能找到刚才安装的openssl的库,把注释删除。
Vim Modules/Setup.dist
1)找到SSL相关配置,SSL=/usr/local/ssl,这儿改成openssl实际的安装路径
SSL=/usr/local/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
4、编译
./configure --prefix=/usr/local/python3
Make &&make install
5、创建软连接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
也可以将python2的软连接删了rm -rf /usr/bin/python,但这样的话yum的文件内容也要改,不然yum无法运行。
6、完成后,输入命令后可以执行了。
总结
运行locust脚本时,依赖的模块要导入ssl,这时如果不知道系统的openssl的路径,就会报错。ModuleNotFoundError: No module named '_ssl'。