2017-04-15 32 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. 
相關問題