python3环境配置tap模块问题及解决方案

conda环境是python=3.8,代码中使用了tap模块

from tap import Tap

问题1

python2和python3语法冲突

 File "/home/cedric/anaconda3/envs/decision_diffuser_env/lib/python3.8/site-packages/tap.py", line 6, in <module>
    from mc_bin_client import mc_bin_client, memcacheConstants as Constants
  File "/home/cedric/anaconda3/envs/decision_diffuser_env/lib/python3.8/site-packages/mc_bin_client/mc_bin_client.py", line 278
    except MemcachedError, e:
                         ^
SyntaxError: invalid syntax

解决方案

修改mc_bin_client.py文件,第278,369,396行

改为:

except MemcachedError as e:

问题2

python2中的exceptions模块在python3中不再支持

  File "/home/cedric/anaconda3/envs/decision_diffuser_env/lib/python3.8/site-packages/tap.py", line 6, in <module>
    from mc_bin_client import mc_bin_client, memcacheConstants as Constants
  File "/home/cedric/anaconda3/envs/decision_diffuser_env/lib/python3.8/site-packages/mc_bin_client/mc_bin_client.py", line 11, in <module>
    import exceptions
ModuleNotFoundError: No module named 'exceptions'

解决方案

  1. 把 import exception注掉,python3不用导入,直接继承Exception
  2. 第24行,改为
class MemcachedError(Exception):

问题3

memcacheConstants 的导入方式

from memcacheConstants import REQ_MAGIC_BYTE, RES_MAGIC_BYTE
from memcacheConstants import REQ_PKT_FMT, RES_PKT_FMT, MIN_RECV_PACKET
from memcacheConstants import SET_PKT_FMT, INCRDECR_RES_FMT
import memcacheConstants

解决方案

改为

from .memcacheConstants import REQ_MAGIC_BYTE, RES_MAGIC_BYTE
from .memcacheConstants import REQ_PKT_FMT, RES_PKT_FMT, MIN_RECV_PACKET
from .memcacheConstants import SET_PKT_FMT, INCRDECR_RES_FMT
from . import memcacheConstants

  • 18
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值