导入错误:无法导入名称“inf”

Ban*_*ake 2 python math import importerror

我是Python新手,我遇到了这个问题。当我运行我的脚本时,它显示此错误:

Traceback (most recent call last):
  File "./message", line 2, in <module>
    from src.graph_lib import *
  File "/export/home/xsymersk/TGR/src/graph_lib.py", line 2, in <module>
    from math import inf
ImportError: cannot import name 'inf'
Run Code Online (Sandbox Code Playgroud)

我的代码具有以下导入结构:

graph_lyb.py:

from src.dfs_lib import *
from math import inf
from collections import Counter
from operator import itemgetter
Run Code Online (Sandbox Code Playgroud)

dfs_lib.py:

from enum import Enum
Run Code Online (Sandbox Code Playgroud)

消息.py:

from src.graph_lib import *
from sys import stdin
Run Code Online (Sandbox Code Playgroud)

森林.py:

from src.graph_lib import *
from sys import stdin
Run Code Online (Sandbox Code Playgroud)

种族.py:

from src.graph_lib import *
from sys import stdin
Run Code Online (Sandbox Code Playgroud)

代码无需导入即可运行inf

tde*_*ney 5

如前所述,math.inf这是 python 3.5 中的新增功能。inf一直存在,float('inf')而且math.inf实际上只是一种便利。如果您喜欢使用math.inf,您可以将代码限制为支持的版本

import sys
if sys.version_info < (3,5):
    raise ImportError('{} requires python version 3.5 or later'.format(__name__))
Run Code Online (Sandbox Code Playgroud)

或者你可以自己添加

import sys
import math
if sys.version_info < (3,5):
    math.inf = float('inf')
    math.nan = float('nan')
    math.tau = math.pi * 2. 
Run Code Online (Sandbox Code Playgroud)