2017-04-15 180 views
-1

我是Python新手,我有这个问题。当我运行我的剧本就说明这个错误:ImportError:无法导入名称'inf'

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' 

我的代码有这个进口结构:

graph_lyb.py:

from src.dfs_lib import * 
from math import inf 
from collections import Counter 
from operator import itemgetter 

dfs_lib.py:

from enum import Enum 

message.py:

from src.graph_lib import * 
from sys import stdin 

forest.py:

from src.graph_lib import * 
from sys import stdin 

race.py:

from src.graph_lib import * 
from sys import stdin 

代码运行而不会inf进口。

+1

'math.inf'。 – vaultah

回答

0

您不必从数学模块中导入infmath.isinf函数存在,但为了定义无限值,您可以使用float('inf')

1

如前所述,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__)) 

或者你可以自行添加在Python 3.5加入

import sys 
import math 
if sys.version_info < (3,5): 
    math.inf = float('inf') 
    math.nan = float('nan') 
    math.tau = math.pi * 2. 
相关问题