一边是全民学python的技术浪潮,一边是部门对python实现数据库备份功能的迫切需求,当二者交织在一起时,我知道是我学习与输出的时候了。
<<<预先说明>>>
虽然这是写python的第一遍文章,但在这里我并不想写一篇Python基础入门的教程类文章,不想去分享我是如何入门Python的,现在来写一些在使用它实现功能需求过程中的一些心得感悟。
<<<实践过程记录>>>
在我编码实现功能的过程中,有70%的时间都在调整运行环境,记录如下:
<<<经验积累>>>
之所以会遇到各种问题,是因为对python开发项目没有一个系统性的认知。在编码之前,没有弄清楚一些语法之外的东西,比如:
如果事先完成了1,就不会遇到缺少各种标准库的问题了,毛估计至少能节约2.5天的开发时间;如果事先完成了2,就不会出现找不到某某模块与属性等问题了,毛估计至少能节约2天的开发时间;
依靠Google,解决这种环境依赖问题并不能给我带来多少技术提升,并不知道这其中的原理,也不需要知道,所以,让开发只专注于编码是多么重要的事情呀!
接下来计划读一读《流畅的python》这本书,豆瓣评分挺高的,9.4分。
<<<技术文档分享>>>
一、经验分享:
1、不推荐在windows系统上测试,费时费力不讨好,就算测试好了也不能保证与生产环境一致,因为生产环境是linux。
2、请一定要先确定环境正常,环境包括python语言环境、标准依赖库,第三方依赖库,项目运行环境。
二、环境依赖:
(1)安装python环境
1、挂载58软件包:
mkdir -p /python3_install_lib
mount 109.0.14.58:/appm/appmdata/rd开发项目/predict预测/基于python3.6的安装库 /python3_install_lib
2、安装标准依赖库
cd /python3_install_lib/rpm
rpm -ivh *.rpm --nodeps --force
3、安装python
cp /python3_install_lib/Python-3.6.1.tar /usr/local
cd /usr/local
tar -xf Python-3.6.1.tar
cd Python-3.6.1
./configure --prefix=/usr/local/python3
make
make install
make报错操作方法:
报错:
Fatal Python error: Py_Initialize: Unable to get the locale encoding
LookupError: unknown encoding: GBK
修改系统编码为UTF-8:
vi /etc/profile
source /etc/profile
4、创建软连接
rm /usr/bin/python3
rm /usr/bin/pip3
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
(2)安装第三方依赖库
cd /python3_install_lib
pip3 install PyMySQL-1.0.2-py3-none-any.whl
pip3 install Cython-0.29.21-cp36-cp36m-manylinux1_x86_64.whl
pip3 install SQLAlchemy-1.3.17-cp36-cp36m-manylinux1_x86_64.whl
pip3 install python_dateutil-2.8.1-py2.py3-none-any.whl
pip3 install pytz-2020.1-py2.py3-none-any.whl
pip3 install six-1.15.0-py2.py3-none-any.whl
pip3 install pycparser-2.20-py2.py3-none-any.whl
pip3 install numpy-1.19.5-cp36-cp36m-manylinux1_x86_64.whl
pip3 install pandas-1.1.5-cp36-cp36m-manylinux1_x86_64.whl
pip3 install cx_Oracle-8.1.0-cp36-cp36m-manylinux1_x86_64.whl
如还需要其他的包使用pip3安装
(3)项目运行
1、上传iris项目,如/home/sysop/iris
2、将项目路径加到系统路径
echo '/home/sysop/iris' > /usr/local/python3/lib/python3.6/site-packages/.pth
3、安装oracle客户端
4、运行py
su - oracle
cd /home/sysop/iris
python3 iris/service/ServiceBackUpOra.py
(4)报错参考
1、安装_bz2:
将_bz2上传至/usr/local/lib/python3.6/lib-dynload
cd /usr/lib64
ln -sf libbz2.so.1.0.6 libbz2.so.1.0
2、没法连接oracle数据库
AttributeError: 'OracleHelper' object has no attribute 'conn'
需要提前安装oracle客户端,运行py脚本需切换到oracle用户,不然无法连接oracle数据库
3、指定pip3中的python3路径
-bash: /usr/local/bin/pip3: /usr/local/bin/python3.6: bad interpreter: 没有那个文件或目录
which pip3
/usr/local/bin/pip3
which python3
/usr/bin/python3
vi /usr/local/bin/pip3
第一行修改为#!/usr/bin/python3