类型错误:的实例之间不支持“<”pyshipping.包运行2t3后

2024-05-16 18:30:29 发布

您现在位置:Python中文网/ 问答频道 /正文

Python新手,很有可能我在这里犯了个愚蠢的错误。。在

三个小时后,我还是不能转换成一个完整的Python项目。我有一个用django框架制作的项目,它使用python3.7,我想把这个库合并到我的应用程序中。但是,由于pyshipping使用了Python2.7,我认为这可能会导致兼容性问题。按照this的答案,我转换了整个项目并尝试运行这个binpack文件_简单.py. 但这给了我一个我根本无法理解的错误。当我使用pycharm终端运行这个文件时,当项目iterpeter设置为python2.7时,它运行得非常好,但是当我将iterpeter设置为3.7时,会出现以下错误

return _pyprofile._Utils(Profile).run(statement, filename, sort)
  File "C:\Users\idadarklord\AppData\Local\Programs\Python\Python37\lib\profile.py", line 53, in run
    prof.run(statement)
  File "C:\Users\idadarklord\AppData\Local\Programs\Python\Python37\lib\cProfile.py", line 95, in run
    return self.runctx(cmd, dict, dict)
  File "C:\Users\idadarklord\AppData\Local\Programs\Python\Python37\lib\cProfile.py", line 100, in runctx
    exec(cmd, globals, locals)
  File "<string>", line 1, in <module>
  File "C:/Users/idadarklord/PycharmProjects/untitled/pyshipping/binpack_simple.py", line 230, in test
    bins, rest = binpack(packages)
  File "C:/Users/idadarklord/PycharmProjects/untitled/pyshipping/binpack_simple.py", line 218, in binpack
    return allpermutations(packages, bin, iterlimit)
  File "C:/Users/idadarklord/PycharmProjects/untitled/pyshipping/binpack_simple.py", line 203, in allpermutations
    trypack(bin, todo, bestpack)
  File "C:/Users/idadarklord/PycharmProjects/untitled/pyshipping/binpack_simple.py", line 187, in trypack
    bins, rest = packit(bin, packages)
  File "C:/Users/idadarklord/PycharmProjects/untitled/pyshipping/binpack_simple.py", line 131, in packit
    packages = sorted(originalpackages)
TypeError: '<' not supported between instances of 'Package' and 'Package'

这是我的档案。请让我知道如果我应该上传整个项目澄清。在

^{pr2}$

Here是指向项目内部文件的联机链接。在


Tags: 项目runinpypackages错误linesimple
1条回答
网友
1楼 · 发布于 2024-05-16 18:30:29

在python3中支持__cmp__方法has been removed。如果要比较两个实例,则需要为类提供一个__lt__方法。原始Package.__cmp__的代码是here。在

新方法可能看起来像:

def __lt__(self, other):
    return self.volume < other.volume

但显然你应该彻底测试一下。在

相关问题 更多 >