Python CherryPy,从matplotlib加载图像,或一般情况下

Python CherryPy,从matplotlib加载图像,或一般情况下,python,matplotlib,cherrypy,Python,Matplotlib,Cherrypy,我不确定我做错了什么,如果你能告诉我该读什么就好了。我已经采取了第一个樱桃教程“你好世界”添加了一个小matplotlib情节。 问题1:我如何知道文件将保存在哪里?它正好是我运行文件的地方。 问题2:我似乎无法在浏览器中打开/查看图像。当我在浏览器中查看源代码时,一切看起来都正常,但运气不佳,即使我包含了完整的图像路径。 我认为我的问题在于路径,但不确定发生了什么 谢谢你的帮助 文森特 import cherrypy 导入matplotlib matplotlib.use('Agg') 将ma

我不确定我做错了什么,如果你能告诉我该读什么就好了。我已经采取了第一个樱桃教程“你好世界”添加了一个小matplotlib情节。 问题1:我如何知道文件将保存在哪里?它正好是我运行文件的地方。 问题2:我似乎无法在浏览器中打开/查看图像。当我在浏览器中查看源代码时,一切看起来都正常,但运气不佳,即使我包含了完整的图像路径。 我认为我的问题在于路径,但不确定发生了什么

谢谢你的帮助 文森特

import cherrypy
导入matplotlib
matplotlib.use('Agg')
将matplotlib.pyplot作为plt导入
类HelloWorld:
def索引(自):
图=plt.图()
ax=图添加_子批次(111)
ax.图([1,2,3])
图savefig('test.png'))
返回“”“”“
index.exposed=True
导入操作系统路径
tutconf=os.path.join(os.path.dirname(_文件,'tutorial.conf'))
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
quickstart(HelloWorld(),config=tutconf)
其他:
mount(HelloWorld(),config=tutconf)

下面是一些对我有用的东西,但在继续之前,我建议您阅读如何配置包含静态内容的目录

问题1:我如何知道文件将保存在哪里?
如果您指定文件应保存的位置,查找文件的过程应该会变得更容易。
例如,您可以将图像文件保存到CherryPy应用程序目录中名为“img”的子目录中,如下所示:

fig.savefig('img/test.png') # note:  *no* forward slash before "img"
return '<img src="/img/test.png" />' # note:  forward slash before "img"
然后显示如下:

fig.savefig('img/test.png') # note:  *no* forward slash before "img"
return '<img src="/img/test.png" />' # note:  forward slash before "img"

那么“CherryPy应用程序目录”是如何确定的呢?我原以为它就是运行myapp.py文件的地方。我还没有阅读你推荐的静态文件信息。现在就这么做。感谢CherryPy应用程序目录位于myapp.py文件所在的位置,您是正确的。在我的示例中,“img”子目录与myapp.py文件位于同一目录中。我是通过“python/Users/vmd/Downloads/CherryPy-2.3.0/CherryPy/tutorial/tut01_helloworld1.py”运行myapp.py的,但它不起作用。在“cd/Users/vmd/Downloads/CherryPy-2.3.0/CherryPy/tutorial”和“python tut01_helloworld1.py”之后运行myapp.py时,文件似乎保存在您所在的目录中。再次感谢VincentVincent,这就是为什么在web应用程序中与文件系统交互时最好始终使用绝对路径的原因——如果它们是相对的,这使得使用各种启动场景(例如/etc/init.d脚本)变得更加困难。像Adam那样使用
abspath
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
,你会更快乐。:)谢谢你最好的回答@bernie