安装Python3.7 并解决ssl问题
安装Python
yum install -y zlib zlib-dev openssl-devel sqlite-devel bzip2-devel libffi libffi-devel gcc gcc-c++
wget http://www.openssl.org/source/openssl-1.1.1.tar.gz
tar -zxvf openssl-1.1.1.tar.gz
cd openssl-1.1.1
./config --prefix=$HOME/openssl shared zlib
make && make install
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/openssl/lib" >> $HOME/.bash_profile
source $HOME/.bash_profile
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel -y
yum install python-pip -y
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
tar -zxvf Python-3.7.0.tgz
./configure prefix=/usr/local/python3 --with-openssl=$HOME/openssl
make && make install
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3.7
ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3.7
1.安装openssl
首先要安装openssl,因为python3需要引用openssl模块,但是centos需要的openssl版本最低为1.0.2,但是centos 默认的为1.0.1,所以需要重新更新openssl
2.测试https是否可用
import urllib.request
url = 'https://www.baidu.com'
b = urllib.request.urlopen(url)
print (b.read())
报错
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:833)>
解决方法
全局取消证书验证
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
3.安装依赖
安装requirements.txt依赖:pip install -r requirements.txt
问题:cenos自带python2,如电脑上同时装了python2(2.7)和python3(3.7),当使用pip安装时默认应安装到python2中,pip3安装时应安装到python3中,但奇怪的是使用pip安装时每次都定位到python3中,不知是啥原因,也不知如何将其重定向到python2中,索性手动指定pip到python2中
查看pip版本
pip -V pip 18.0 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)
pip2 -V pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
pip3 -V pip 18.0 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)
解决方法
pip指定python版本安装
安装到python2.7版本中:sudo pip2 install 模块名 或 python2 -m pip install 模块名
安装到python3.5版本中:sudo pip3 install 模块名 或 python3.5 -m pip install 模块名
4.linux 中后台运行python脚本
nohup python yourscript.py &可以让你的程序在后台运行,控制台输出导向nohup.out文件
使用nobup命令 结尾处加一个& 符号
2、关闭命令
1、查看进程
# ps -ef|grep python
或者
# ps -ef|grep Job
2、关闭进程
# kill -9 19913
3、检查
用1中查看进程的命令,检查或确认进程是否真正被关闭。