不清楚导入方法

时间:2019-04-07 03:14:24

标签: python import

我需要使用一些在线代码,并且不确定所使用的某些导入方法。这是代码的顶部:

from __future__ import absolute_import, division, print_function

import itertools
import multiprocessing
import sys
import time
import warnings

import numpy as np

ot = True
try:
    from ot.lp import emd_c, check_result
    from scipy.spatial.distance import _distance_wrap # ot imports scipy anyway
except:
    warnings.warn('cannot import module \'ot\', module \'emd\' will be empty')
    ot = False

ot.lp是什么?据我所知,它看起来像True.lp,但我从未见过(我什至不确定要用Google搜索什么)。而且我总是会收到错误,而且我不知道该怎么办才能解决它。谢谢!

3 个答案:

答案 0 :(得分:3)

不幸的是,ot在这里有两件事:bool变量的名称,一个模块(其他人已经链接到该模块)。

如果可以导入模块 ot,则代码的目的是使变量 Trueot,否则为False。因此,大概可以在代码中的其他地方对变量ot的值进行检查。

这本身并不是一个坏习惯,但是至少可以改进变量名。

import语句中使用名称时,Python会在PYTHONPATH环境变量和 ignore 定义的相似名称中指定的目录中查找该名称在代码中。因此,例如,这可行:

sklearn = None

from sklearn import linear_model

您会发现Python不会解析变量sklearn来尝试从linear_model导入None

答案 1 :(得分:1)

我认为该库称为POT: Python Optimal Transport。您可以通过以下方式安装它:

pip install POT

答案 2 :(得分:0)

ot.lp是python optimal transport module。链接到源代码。