2017-04-15 5 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'は、Python 3.5で追加されましたそれを自分で追加することができます。 – vaultah

答えて

0

数値モジュールからinfをインポートする必要はありません。 math.isinf関数が存在しますが、無限値を定義する場合はfloat('inf')を使用できます。

1

どのpythonバージョンを使用しますか?あなたが使うのPythonのバージョンを確認する必要があり

:(https://docs.python.org/3/library/math.html#math.inf関連リンク)mathパッケージで

inf定数は、Python 3.5

で実装されています。

+0

ああ、私は低いバージョンを持っています、何かinfとしてですか? –

+0

私はそれを持って、フロート( "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__)) 

にあなたのコードを制限することもできますし、単に

import sys 
import math 
if sys.version_info < (3,5): 
    math.inf = float('inf') 
    math.nan = float('nan') 
    math.tau = math.pi * 2. 
関連する問題