因业务需求做了一个小功能,开发环境使用的是:tornado
Python 环境为 2.7
部署到linux centos 6.5 时候发现线上的Python环境为2.6
然后就各种报错,在本地使用Python3编译完之后,竟然好使,可能是虚拟环境已经配置过了,我靠;
思路如下:
升级linux系统的Python环境
更新软链
安装pip
更新pip软链
升级Python2的代码为Python3语法
成功
Python3 环境安装:
安装Python3
wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz
tar -zxf Python-3.6.4.tgz
cd Python-3.6.4
./configure --enable-optimizations --prefix=/usr/bin/python3.6.4
make && make install
python --version
安装:setuptools
wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
tar -zxvf setuptools-19.6.tar.gz
cd setuptools-19.6
sudo python setup.py build
sudo python setup.py install
安装pip:
wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb
tar -zxvf pip-8.0.2.tar.gz
cd pip-8.0.2
python get-pip.py
更新-:pip install --upgrade pip
更新Python软链:
ln -s /usr/{你的Python3.6安装目录}/python3 /usr/bin/python
更新PIP软链:
ln -s /usr/{你的Python3.6安装目录}/pip /usr/bin/pip
if(pip软链不好使)
{
hash -r #清空缓存列表
}
到此线上Python3的环境就已经安装成功了
我这里只描述我遇到的Python2和Python3代码中的差异
Python2中 :MySQLdb Python3中用:pymysql 代替
Python2中 :(一直报这行错误,找了半天发现两个版本语法不同)
except
Python3中用:
except ZeroDivisionError as err:
print ('Exception: ', err)
Python2中:print ‘输出’
Python3中用:print ('Exception: ')
如上就是我遇到的几个问题,希望对你有用,祝好。
网友评论