我需要使用一些在线代码,并且不确定所使用的某些导入方法。这是代码的顶部:
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搜索什么)。而且我总是会收到错误,而且我不知道该怎么办才能解决它。谢谢!
答案 0 :(得分:3)
不幸的是,ot
在这里有两件事:bool
变量的名称,和一个模块(其他人已经链接到该模块)。
如果可以导入模块 ot
,则代码的目的是使变量 True
为ot
,否则为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。链接到源代码。