python开发备忘录

这一篇博客的内容主要是记录在python3开发过程中遇到的一些环境依赖、版本选择等问题及对应的解决方案。


1、cx_Oracle的安装与使用

在python中,通过cx_Oracle模块,我们可以与Oracle数据库进行交互。值得注意的是,cx_Oracle是通过加载Oracle客户端库文件以实现和Oracle数据库的通信(The cx_Oracle module loads Oracle Client libraries which communicate over Oracle Net to an existing database),而Oracle客户端库文件是需要额外单独安装的。

cx_Oracle官方手册中,详细讲解了如何对cx_Oracle进行初始化。当操作系统为64位win7时,通过Oracle客户端库文件下载页面选择版本时需要注意,在19.11.0.0.0版本下,无论是Basic Package还是Basic Light Package,均是不支持win7的:
在这里插入图片描述
可以选择18.5.0.0.0版本的进行下载,如果只是为了满足cx_Oracle使用,下载Basic Light Package即可。

如何让下载的库文件生效呢?可以参考这个答案,即将解压后的文件中根目录下的所有.dll文件复制到python解释器所在路径;也可以看参考cx_Oracle给出的方法

2、利用conda进行虚拟环境管理及linux文件的权限问题

利用conda可以便捷地管理python环境,避免第三方依赖的冲突。

项目实际运行的服务器如果无法联网,那么可以考虑利用conda在一个具有相同操作系统的、可联网的虚拟机中搭建好python虚拟环境,在该虚拟环境中安装好所有的依赖,然后,找到conda存放虚拟环境的地方(默认情况下,位于/root/anaconda3/envs),将刚刚创建的虚拟环境对应的文件夹压缩后上传至目标服务器的虚拟环境路径下,即可实现在目标服务器上使用该虚拟环境。

有时,服务器上的虚拟环境激活后,仍然无法获取正确的python版本,这时候一方面检查anaconda是否已经进行了初始化(执行source ~/.bashrc进行初始化);另一方面,可以检查目标环境文件夹的权限,给文件夹以合适的权限后,重新激活虚拟环境进行尝试。

关于linux文件权限的问题,可以参考这篇文章

3、生成/校验MD5码

通过校验MD5码,可以判断一个文件在传输的过程中是否有损坏,利用python可以非常简单的做到这一点:

import hashlib

def md5(fname):
    hash_md5 = hashlib.md5()
    with open(fname, "rb") as f:
        for chunk in iter(lambda: f.read(4096), b""):
            hash_md5.update(chunk)
    return hash_md5.hexdigest()

上述代码来自于这篇回答,在使用时,只需要传入待校验文件的路径,然后函数会给出该文件的MD5码,通过与原始的MD5码进行对比可以发现文件是否有变化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芳樽里的歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值