因为有个项目要用到 Python 爬取直播间主播和弹幕数据, 所以记录一下安装过程以及途中遇到的问题
先查看当前 Python 版本是2.7的, 后面要重新安装 Python3, 如果还没有安装过后面就更省事了
python –version
#输出为 Python 2.7.16
OpenSSL Install
#安装py3新版本之前先安装openssl, 否则后面缺少ssl又需要重装, 如果 /usr/local 目录下已经有 openssl 文件夹,先把openssl 改名为 opensslbak 备份, 防止后面出现问题能恢复
cd /usr/local
mv openssl opensslbak
wget https://www.openssl.org/source/openssl-3.0.2.tar.gz –no-check-certificate
tar -zxvf openssl-3.0.2.tar.gz
cd openssl-3.0.2/
./Configure –prefix=/usr/local/openssl
#一般上面命令都会失败报错:Can‘t locate IPC/Cmd.pm in xxx
yum install -y perl-CPAN
perl -MCPAN -e shell
#进入后第一步选yes,第二步选manual,第三步选yes,出现 cpan[1]> 就可以了
install IPC/Cmd.pm
#按Ctrl+D退出cpan,重新执行./Configure –prefix=/usr/local/openssl
./Configure –prefix=/usr/local/openssl
make && make install
cd /usr/local/openssl
cp -rf /usr/local/openssl/lib64 /usr/local/openssl/lib
Python3 install
cd ~
wget https://www.python.org/ftp/python/3.12.1/Python-3.12.1.tar.xz
tar -xvf Python-3.12.1.tar.xz
yum update -y
yum install -y zlib-devel bzip2-devel libffi-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make gcc gcc-c++
cd Python-3.12.1/
./configure –prefix=/usr/local/python3 –with-openssl=/usr/local/openssl –with-openssl-rpath=auto
#3个并发任务
make -j3 && make install
cd /usr/local/bin/
#把原有的python2改成python.bak
mv /usr/bin/python /usr/bin/python.bak
建立软链接
ln -s /usr/local/bin/python3 /usr/bin/python
python –version
#升级python版本之后将由默认的python指向了python3,yum不能正常使用,需要更改2个配置文件
vim /usr/bin/yum
vim /usr/libexec/urlgrabber-ext-down
2个文件都是把开头第一行的 #!/usr/bin/python => #!/usr/bin/python2.7
注: 如果遇到了 php 程序正在使用openssl, 新安装的openssl缺少文件导致php那边报错
看具体缺少哪个文件, 去原来的 opensslbak 文件夹里复制过来到现有的openssl对应的目录下
然后重启一下Nginx和php就行了
pip Install
pip install requests urllib3 pymysql websocket websocket-client mysql-connector-python pytz python-dotenv
USE
python LiveChatCrawler.py
Error
1. pip is configured with locations that require TLS/SSL mkdir -p ~/.pip vim ~/.pip/pip.conf # 修改镜像源为阿里云 [global] index-url = http://mirrors.aliyun.com/pypi/simple/ [install] trusted-host = mirrors.aliyun.com
本文参考 CSDN 文章 => Caused by SSLError(“Can‘t connect to HTTPS URL because the SSL module is not available.“
且在原基础上根据实际情况有所改动