Python中有人用过py3Fdfs这个库吗,为什么在Python3环境下无法使用?

null
Python中有人用过py3Fdfs这个库吗,为什么在Python3环境下无法使用?

3 回复

我遇到过这个问题。py3Fdfs这个库确实在Python3下有兼容性问题,主要是因为它依赖的旧版fdfs-client-py库没有维护更新。

核心问题是:py3Fdfs内部调用的fdfs-client-py库使用了Python2风格的语法,比如print语句没有括号,还有一些编码处理问题。

解决方案:

  1. 直接使用官方推荐的fdfs-client-py(推荐):
# 安装官方维护的版本
pip install fdfs-client-py

# 使用示例
from fdfs_client.client import Fdfs_client

# 创建客户端
client = Fdfs_client('/etc/fdfs/client.conf')

# 上传文件
result = client.upload_by_filename('/path/to/file.jpg')
print(f"文件ID: {result['Remote file_id']}")
  1. 如果你必须用py3Fdfs,可以手动修复:
# 先安装
pip install py3Fdfs

# 然后找到库安装位置,修改以下文件:
# 1. 在py3Fdfs/client.py中,将所有print语句加上括号
# 2. 将字符串处理相关的地方加上.decode('utf-8')

# 示例修复:
# 原代码:print "upload success"
# 改为:print("upload success")
  1. 更好的选择是用py3fdfs的替代品
# 安装
pip install py3fdfs

# 使用(注意包名是小写)
from py3fdfs.client import Fdfs_client

client = Fdfs_client('client.conf')
result = client.upload_by_buffer(b'file content', 'txt')

简单总结: 直接用fdfs-client-py或者py3fdfs(小写)替代。


windows 平台不支持

ubantu 上试的,看了源码,py3 的这个库的源码用了 py2 的库,不知道怎么回事,现在转用 Python2 开发了

回到顶部