这是我的文件夹结构:
script.py
api/
__init__.py
charts/
__init__.py
charts.py
在script.py
中,我有:
from api.charts import charts
import billboard
和电话:
charts('Alternative-Songs', '1997')
billboard.py
不在上述结构中,因为它是通过python setup.py install
安装在我的系统上的,并且它有charts()
的方法,如下所示:
billboard.ChartData(chart_name, date)
在charts.py
,charts()
使用billboard.py
方法定义:
def charts(chart_name, date):
chart = billboard.ChartData(chart_name, date, quantize=True)
return chart
但是当我运行script.py
时,我收到以下错误:
Traceback (most recent call last):
File "script.py", line 70, in <module>
print (charts('Alternative-Songs', '1997'))
TypeError: 'module' object is not callable
我该如何解决这个问题?
答案 0 :(得分:1)
根据您的文件夹结构,charts
目录包含charts.py
文件。
因此from api.charts import charts
将名称charts
导入为模块。
似乎charts
模块有一个名为charts
的函数。你认为你正在调用该函数,但是你正在调用该模块。
只是做
print (charts.charts('Alternative-Songs', '1997'))
(如果你问我,那会产生很多charts
)。)
答案 1 :(得分:1)
from api.charts import charts
从charts.py
下的chart
目录导入模块api
。 (有关模块别名和导入的问题,请参阅this)
现在chart
是模块引用,而不是方法charts
。
要调用图表,您必须使用
print(charts.charts('Alternative-Songs', '1997'))
(模块charts
内的方法charts
)。