【发布时间】:2017-11-25 05:15:45
【问题描述】:
我正在尝试使用 Python 的 Flask 框架构建一个网站。
我在一个带有 Apache2 的 Linux Ubuntu 服务器上。
在我的网站上,每当有人输入 URL "/Elv_1.html" 时,我想打开一个 .txt 文件,获取一些值并使用 pygal 创建一个图表。这是我的代码:
@app.route('/river_1.html')
def riv_1():
try:
document = open('temp.txt','r')
temp_list = []
for n in document:
n = n.rstrip('\n')
n = int(n)
temp_list.append(n)
document.close()
graf = pygal.Line(title=u'Tempt last 24h')
graf.x_labels = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24)
graf.add('Temp', temp_list)
graf = graf.render_data_uri()
return render_template('river_1.html', graf=graf)
except Exception, e:
return str(e)
if __name__ == '__main__':
app.run(debug=True)
文件'temp.txt' 与__init__.py 文件位于同一目录中。 __init__.py 是代码来自的 Flask 应用。
当我在我的计算机上使用 localhost 运行服务器时,它工作得很好。但是,当我将它上传到我的 Linux 服务器并尝试输入该特定 URL 时,它会显示以下错误:
[错误2]没有这样的文件或目录:'temp.txt'
关于为什么它似乎找不到文件的任何建议?
【问题讨论】:
-
服务器上是否也存在该文件?也就是你把
temp.txt也上传到服务器了,不仅仅是Python程序? -
似乎该文件与烧瓶文件不在同一目录中。看看这是否是问题所在。这些问题通常是由于名称不正确或路径不正确造成的
-
当你在本地运行你的应用程序时,它们在一边,但在服务器上,你可以使用
wsgi server调用你的应用程序,(如果你不是,你应该这样做!),有一个那里的 python 路径之间有一点区别,你应该改变你给文件path的方式。 -
是的,文件已经上传到服务器了。
-
我的 init.py 与 temp.txt 位于同一文件夹中