我有以下结构:
run.py
app/hdfs_lib_test.py
app/src/HDFSFileReader.py
这是一个Flask应用程序。
HSFDFileReader.py
包含:
class HDFSFileReader:
"""This class represents a reader for accessing files in a HDFS."""
def __init__(self):
pass
@classmethod
def read(cls, file_path):
lines = []
try:
client = Config().get_client('dev')
with client.read('Serien_de', encoding='utf-8', delimiter='\n') as reader:
for line in reader:
lines.append(line)
except:
print("ERROR: Could not read from HDFS.")
raise
return lines
当我运行./run.py
时,我得到ImportError: No module named 'hdfs'
。但是安装了库,我可以调用python hdfs_lib_test.py
,其中包含以下内容:
from hdfs import Config
try:
client = Config().get_client('dev')
with client.read('Serien_de',encoding='utf-8',delimiter='\n') as reader:
for line in reader:
print(line)
except:
raise
所以我觉得,因为HDFSFileReader是子模块的一部分而且hdfs_lib_test.py
不是。前者不起作用,但后者不起作用。但是如何解决导入问题?
我无法成为循环导入问题,我在整个项目中搜索hdfs
的导入,并且hdfs_lib_test.py
未被实际项目使用。