【发布时间】:2017-12-14 21:14:31
【问题描述】:
我正在使用 libais,这是一个非常简单的库来处理海洋 AIS 消息。我已经使用了很多,我确定我的代码没问题。使用 REPL:
import ais
msg = '177KQJ5000G?tO`K>RA1wUbN0TKH' # a valid AIS encoded string
ais.decode(msg) # this will succeed
ais.decode(msg) # this will fail
ais.decode(msg) # this will succeed
ais.decode(msg) # this will fail, etc
失败的意思是我会得到错误: TypeError:函数只需要 2 个参数(给定 1 个)
这是一种奇怪的行为,我认为这与我的环境有关。我认为这在我安装(然后删除)Anaconda 之后就开始发生了。我的平台是RHEL7。我已经删除并重新安装了 libais。没有重建这个服务器,我不知道还能做什么。关于如何解决“每隔一段时间有效”错误的任何想法?
【问题讨论】:
-
异常的完整回溯是什么?
-
@MartijnPieters:我可以在 Python 2.7 中重现该错误,而这实际上 是 唯一的输出。没有回溯(我认为他们正在包装一个 c++ 库。)如果我们使用正确的签名,一切似乎都可以在 2 和 3 中工作。
-
你在什么上下文中调用它? Python 2 还是 3?不管它值多少钱,我都无法在 Py2 中重现它。
-
@MartijnPieters:我meant what I said。 ;-)
-
@DSM:哇。那是一个乱七八糟的图书馆。它很可能直接打印消息。我现在假设试图抓住
TypeError甚至都行不通?