問題が何であるかを理解するのに非常に長い時間がかかりましたが、今ではそれを解決する方法がわかりません。
web.pyサーバーを実行するためにpythonanywhereを使用しています
これが問題です。web.pyインスタンスは、サーバー要求間で実行を停止しません。そのために何が起こっているのかを示しましょう。
list.append(number)を使用してループに入力されるリストがある ため、サーバーへの最初のリクエスト中にスクリプトは正常に実行されます。 リスト=(1、2、3)
ただし、web.pyインスタンスが停止しないため、サーバーリストへの2番目のリクエストで(1、2、3、1、2、3)になり、スクリプトが機能しません。
web.pyがリクエスト間で実行を停止しないことをどうやって知ることができますか?スクリプトの寿命の終わりにすべての名前空間を削除すると、サーバーへの2番目の要求で、「Webが定義されていません」というエラーが返されました。
クラスweb_serve:
def GET(self):
data_obj = volumePit_google()
plotter = volumePit_plot()
data_obj.download('SPY', 2)
data_obj.organize()
price, volume = zip(*data_obj.data_final)
plot_edges = data_obj.plotter_edges
e_test = data_obj.data_ticks
plotter.maxmin(price)
data_obj.plotter_ticks()
for i, tick in enumerate(data_obj.data_ticks[1:]):
edges = [data_obj.data_ticks[i], tick]
volume_edges = [plot_edges[i], plot_edges[i+1]]
day_data = data_obj.data_final[edges[0]:edges[1]]
price, volume = zip(*day_data)
plotter.dividers(volume_edges)
price_position = data_obj.price_action(price, [volume_edges[0], volume_edges[1]])
plotter.subplot.plot(price_position, price, color='g', ls='-', lw='1')
histogram = data_obj.histogram(day_data, 0)
plotter.volume_profile(histogram, volume_edges)
plotter.ticks([data_obj.plotter_edges, data_obj.dates, data_obj.plotter_tick_pos])
data_stream = cStringIO.StringIO()
plt.savefig(data_stream, bbox_inches='tight')
data_stream.seek(0)
return_png = base64.b64encode(data_stream.read())
data_stream.close()
return return_png
クリアが必要な変数はdata_obj内にあります
言及する価値があるかどうかはわかりませんが、以下のクラスは両方とも同じファイルで定義されていますdata_obj = volumePit_google()plotter = volumePit_plot()
class volumePit_google:
data = []
data_final = []
day_volume = []
data_ticks = [] #list contains indexes of the data_final separating days
dates = []
plotter_tick_pos = []
plotter_edges = [0]
def download(self, ticker, period):