4

何が間違っているのかわかりません。何を読むべきか教えていただければ幸いです。私は最初のCherryPyチュートリアル「helloworld」に小さなmatplotlibプロットを追加しました。質問1:ファイルが保存される場所をどのように知ることができますか?それはたまたま私がファイルを実行している場所です。質問2:ブラウザで画像を開いたり表示したりできないようです。ブラウザでソースを表示すると、すべてが正しく表示されますが、完全な画像パスを含めても運がありません。私の問題はパスにあると思いますが、何が起こっているのかはわかりません

助けてくれてありがとうヴィンセント

import cherrypy
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt

class HelloWorld:

    def index(self):
        fig = plt.figure()
         ax = fig.add_subplot(111)
         ax.plot([1,2,3])
         fig.savefig('test.png')
        return ''' <img src="test.png" width="640" height="480" border="0" /> '''

    index.exposed = True

import os.path
tutconf = os.path.join(os.path.dirname(__file__), 'tutorial.conf')

if __name__ == '__main__':
    cherrypy.quickstart(HelloWorld(), config=tutconf)
else:
    cherrypy.tree.mount(HelloWorld(), config=tutconf)
4

1 に答える 1

5

以下は私のために働いたいくつかのことですが、先に進む前に、静的コンテンツを含むディレクトリを構成する方法についてこのページを読むことをお勧めします。

質問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"

質問2:ブラウザで画像を開いたり表示したりすることが[できない]ようです。
これは、CherryPyアプリケーションで静止画像を利用できるようにするために使用した1つの方法です。

if __name__ == '__main__':
    import os.path
    currdir = os.path.dirname(os.path.abspath(__file__))
    conf = {'/css/style.css':{'tools.staticfile.on':True,
        'tools.staticfile.filename':os.path.join(currdir,'css','style.css')},
        '/img':{'tools.staticdir.on':True,
        'tools.staticdir.dir':os.path.join(currdir,'img')}}
    cherrypy.quickstart(root, "/", config=conf)
于 2009-10-21T22:33:32.563 に答える