重复:__init__() 需要 4 个参数(给出了 3 个)

重复:__init__() 需要 4 个参数(给出了 3 个)

在 Ubuntu 17.10 上,备份应用程序失败并出现以下错误:

Traceback (most recent call last):
  File "/usr/bin/duplicity", line 1546, in <module>
    with_tempdir(main)
  File "/usr/bin/duplicity", line 1540, in with_tempdir
    fn()
  File "/usr/bin/duplicity", line 1391, in main
    do_backup(action)
  File "/usr/bin/duplicity", line 1416, in do_backup
    globals.archive_dir).set_values()
TypeError: __init__() takes exactly 4 arguments (3 given)

我认为这可能是 Python 2/3 的问题,但看起来 17.10 上的其他用户的 deja-dup 可以正常工作。

我尝试重新安装 deja-dup 和 duplicity,但问题依然存在。

Duplicity 版本:0.7.12-1ubuntu1
Deja-dup 版本:36.3-0ubuntu0.1

编辑:

我怀疑由于某种原因 Duplicity 没有传递self给班级,但在代码中有问题的行是:

col_stats = collections.CollectionsStatus(globals.backend,
globals.archive_dir).set_values()

这意味着它可能不是 Python 版本错误,因为它确实向该类传递了三个参数。

现在在CollectionsStatus课堂上,帮助说:

Help on class CollectionsStatus in module duplicity.collections:

class CollectionsStatus
 |  Hold information about available chains and sets
 |
 |  Methods defined here:
 |
 |  __init__(self, backend, archive_dir, action)
 |      Make new object.  Does not set values

这意味着它肯定应该传递 4 个参数,包括self

我有一种感觉,我知道哪里出了问题。我经常使用脚本来更新我的所有 Python 模块,所以我敢打赌,该类在某个地方发生了变化,并且 Duplicity(shell 脚本)及其 Python 模块的版本不匹配。

答案1

显然,我有 Duplicity Python 模块 0.7.14 和 aptitude 包 0.7.12。我先使用sudo pip uninistall duplicity,然后使用sudo aptitude reinstall duplicity,问题就解决了。

我想我不应该一次更新所有 Python 模块。

相关内容