Python枚举类没有';从另一个模块导入时,无法匹配自身

Python枚举类没有';从另一个模块导入时,无法匹配自身,python,enums,python-import,Python,Enums,Python Import,这里有一个有趣的例子: 我在一个模块中创建了一个python枚举,然后在该模块和另一个模块中使用。当我在第二个模块中导入枚举时,它最终与在第一个模块中导入的值不匹配。我想将值“KnownComputers.KILLDEVIL”从第二个模块传递到第一个模块,但当我将传入的值与“KnownComputers.KILLDEVIL”进行比较时,它们的比较结果并不相等。奇怪 servers.py位于foo\u模块/servers.py: from enum import Enum class Known

这里有一个有趣的例子:

我在一个模块中创建了一个python枚举,然后在该模块和另一个模块中使用。当我在第二个模块中导入枚举时,它最终与在第一个模块中导入的值不匹配。我想将值“KnownComputers.KILLDEVIL”从第二个模块传递到第一个模块,但当我将传入的值与“KnownComputers.KILLDEVIL”进行比较时,它们的比较结果并不相等。奇怪

servers.py
位于
foo\u模块/servers.py

from enum import Enum

class KnownComputers(Enum):
    KILLDEVIL = "killdevil"
    LONGLEAF = "longleaf"
    DOGWOOD = "dogwood"
    WIGGINS = "wiggins"
    ANDREWS_LAPTOP = "andrews_laptop"
    CATHYS_DESKTOP = "cathys_desktop"
from servers import KnownComputers

def func( identifier ):
    comp = identifier.which_computer()
    if comp == KnownComputers.KILLDEVIL:
        print( "Found killdevil!")
    else:
        print( "Found nothing!")
在该模块中用于做出决策:
foo\u模块/decision.py中的
decision.py

from enum import Enum

class KnownComputers(Enum):
    KILLDEVIL = "killdevil"
    LONGLEAF = "longleaf"
    DOGWOOD = "dogwood"
    WIGGINS = "wiggins"
    ANDREWS_LAPTOP = "andrews_laptop"
    CATHYS_DESKTOP = "cathys_desktop"
from servers import KnownComputers

def func( identifier ):
    comp = identifier.which_computer()
    if comp == KnownComputers.KILLDEVIL:
        print( "Found killdevil!")
    else:
        print( "Found nothing!")
(在
foo\u模块/
中有一个空的
\uuu init\uuuuuuuuuuuuuy.py

然后在我的第二个模块中,在
bar\u模块/testbed.py的
testbed.py

from foo_module.servers import KnownComputers
import foo_module.decide

class killdevil_ident:
    def which_computer(self):
        return KnownComputers.KILLDEVIL

ki = killdevil_ident()
foo_module.decide.func(ki)
我希望看到的是
找到了杀手但实际打印的是
找不到任何内容。这里发生了什么,我如何解决这个问题


(同样值得注意的是:我的python路径包括
/path/to/foo_module
/path/to
,因为我过于彻底/困惑了。)

啊!您的问题是如何从
foo_模块/decise.py
导入
servers.py
:您需要明确告诉python
servers.py
是同一模块的一部分,而不是另一模块的一部分。特别是导入语句需要更改:

from servers import KnownComputers
应该成为

from .servers import KnownComputers

这不是一个很有帮助的答案。您还没有告诉我为什么python会将
/path/to/foo_module/servers.py
视为与
/path/to/foo_module/servers.py
不同的文件,并将其导入两次。