奇人凡人の雑記帳

趣味とか投資とか、twitterに書きにくいことをこちらに書きます。毎週金曜更新目標(現在多忙のため月1の投資成績がメインです)

pythonanywhereの複垢作った時に起きたこと

h05torです。

私はpythonanywhereでFlaskを使ってwebページをデプロイしていますが、訳あって複垢を作ることにしました。

アカウント自体はIDで管理されていて、電話番号などの個人情報の登録は不要であるため、一人でいくつでも複垢持つことができます。

無料会員だと1サイトしか作れませんのでpythonanywhereで複数のサイトを持つのであればこの方法でOKです。

 

とりあえず元のアカウントで作っているサイトのコピーサイトを立ち上げるためにpythonファイル、htmlファイル、その他諸々のファイルを全く同じに配置して必要なライブラリを追加でインストールしてみました。

pythonのバージョンは3.9まで選べるようになっていましたが、元のサイトは3.8でしたので、コピーサイトということで敢えて3.8を選びました。(当時は3.8までしかありませんでした。)

 

で、それでちゃんと立ち上がったのかというと・・・・・

 

はい、エラー画面でました。

 

完全に全部コピーしたのに何故?と思い、エラーログ確認したところ、

いやいや、flask_sessionstore(captcha導入に必要なライブラリ)ちゃんとインストールしたわ。それに前に書いた備忘録記事見ながらやったからどこが違うんや。(自分のブログを参考にするスタイル)

もちろん「Bash console」からpip3 listのコマンドでインストール済みのライブラリ確認したところ入っておりました。

 

というわけで原因不明となったわけですが、カンでpip3.8 installで再度ライブラリを入れてみたところ・・・・

あれ?なんか知らんけどこのエラーに関しては解決しました。

推測ではありますが、pip3 installだとpythonanywhereに実装されている最新版のバージョンにライブラリがインストールされているのだと思います。

今回、pythonのバージョンが3.8で立ち上げましたがpythonanywhereに実装されている最新版のpythonが3.9であるため、3.9としてインストールされてしまい、3.8にはライブラリが入っていない状態だったのだと思われます。

 

で、このエラーに関してはと書いた通り、まだ終わりではありません。

一応これでログイン機能も通過できるようになり、各ページにも行けるようになったので外見的には完成したと思われたのですが・・・

次はファイルダウンロード機能でエラーになりました。

ここもpythonファイルそのままコピーしてるから何故なのか・・・

原因はFlaskのバージョンが変わっていたため、ある関数の引数名が変更されていたことが原因でした。

元のアカウントでのFlaskのバージョンは1.1.1でしたが複垢でのFlaskはバージョンが2.0.0と新しいものになっていました。

前のアカウント立ち上げたのが前年の5月ぐらいだったと思いますので1年でここら辺も変わっているみたいですね。

ちなみにその変更か必要となった箇所ですが、ファイルダウンロードに使う「send_from_directory」の引数でファイル名を指定する部分がfilename→pathに変更となっていました。

って、これ2月に記事で上げたばっかりですね。修正しなきゃ。

 

というわけでこれでなんとかコピーサイトが完成しました。

1年でこれだけ色々と変わるのですから、仮にpythonをはじめプログラマーを本業にするのであれば日々の情報収集と新しい技術の勉強は欠かせませんね。

エンジニアは勉強が苦手な人には向いていないというのはこういうことであるとなんとなく実感できたと思いました。

※ちなみに私は趣味でやっているだけで本業はメーカー(中小企業)の研究開発職なのでITエンジニアではないです

pythonanywhereのFlaskを用いたwebアプリで定期実行する方法

追記:

2022/4/8:記事公開

2022/4/22:pythonanywhereで出来なかったflask-apschedulerのコードを記載

     (残業長くて時間なかったので既存記事の追記で許してヒヤシンス)

----------------------------------------------------------------------------------------------

h05torです。

 

今回はpythonの備忘録記事です。

業務での研究用ツールとしてFlaskで作成してpythonanywhereにデプロイしているwebサイトで定期実行を導入するまでのお話です。

具体的に何がしたかったのかといいますと、測定機器から出力されたcsvファイルをアップロードして・・・・・みたいなことをするのですが、このcsvファイルが大量に溜まっていくので毎日1回自動的に削除するというプログラムを実装するという内容です。

(1個1個手動で削除するの面倒ですからね)

 

 

pythonにおける定期実行のモジュールとしてapscheduler、またそれのFlaskに適用した版であるflask_apscheduler(普通のapschedulerと何が違うのかは分からないです)があり、「何分毎」などの一定間隔での実行、「毎日何時何分に実行」といった指定時刻での実行が可能です。

apschedulerは↓のリンク先を参考にして下さい。

pythonのAPSchedulerによるプログラム、関数の定期実行 - どん底から這い上がるまでの記録 (pytry3g.com)

ですが・・・・・

なんとこの方法、pythonanywhereでは使用できませんでした!(※無料版の場合、有料版は分かりません)

どうやらpythonanywhereはスレッドが無効になっているみたいで、それが原因でflask-apschedulerが使用できないみたいです。

↓参照

PythonAnywhere で Flask APScheduler を使う : フォーラム : PythonAnywhere (www.pythonanywhere.com)

本体部分のflask_app.pyに「from flask_apscheduler import APScheduler」付け加えて

必要な記述加えてリロードしたらエラー起こしてwebページ開けなくなりました。

せっかくpythonanywhereにモジュールインストールしたのに・・・

(flask-apschedulerのモジュール自体は問題なくインストールできるみたい)

f:id:h05tor:20220408212140p:plain

 

pythonanywhereの場合はヘッダーのメニューから「Tasks」で、1日に1回指定された時刻に指定したプログラムを実行させることができます。

f:id:h05tor:20220408230350p:plain

f:id:h05tor:20220408230740p:plain

「Files」で「ユーザー名」のディレクトリの直下に処理内容を記載したpyファイルを入れておき、上の画像のように処理ファイルを指定し、指定時刻を設定してCreateボタンを押せば、定期実行の設定を完了します。

設定が完了すると以下のような表示になります。

f:id:h05tor:20220408231246p:plain

無料版では設定できる定期実行は1つのみです。

また定期実行の有効期限は1か月間なので、たまにExtend expiryを押して有効期限を延長してあげる必要があります。

 

 

今回は以上となります。

 

また何かあれば備忘録記事を書きます。

 

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

 

当初、Flask-apschedulerで実装しようとしたがpythonanywhereでスレッド無効のため

はねられたコード

※実際の研究用プログラムのコードではなく、動作確認用のテストコードです。

 指定時刻になるとcsvファイルを作成するコードです。

"""
指定された時間にcsv作成
"""
from flask import Flask,render_template
from flask_apscheduler import APScheduler#定期実行のために必要なモジュール(flask用)
from datetime import datetime
import os
import csv

scheduler = APScheduler()#定期実行のために必要なモジュール
app = Flask(__name__)

@app.route('/')
def index():
    return render_template("index.html")


@scheduler.task('cron',id="do_tick", day_of_week='sat', second=5)#指定時刻で実行 def tick():
    now =  datetime.now().strftime('%Y%m%d%H%M%S')
    title = now + ".csv"
    with open(title, 'w') as f:
        writer = csv.writer(f)
        writer.writerow(str(datetime.now()))

scheduler.init_app(app)#定期実行のために必要なモジュール
scheduler.start()#定期実行のために必要なモジュールを起動
    
if __name__ == "__main__":
    app.debug = True
    app.run(host = "localhost")

有栖川ひまり誕生祭

h05torです。

 

タイトルのとおりです。

 

私が福原遥推しであることは過去の記事を読まれている方やtwitterをフォローされている方であればご存じであると思います。

当然本丸である福原遥さんの誕生日には盛大に#福原遥誕生祭 のタグと本人の画像をセットしたツイートを連発します。

福原遥さんが女優、モデル、youtuberだけでなく声優もされている以上、彼女が声を当てているアニメキャラに誕生日設定が存在していれば、そのキャラの誕生日も祝うのが私流であります。

 

というわけで本日は「キラキラ☆プリキュアアラモード」の主要登場人物であり、キュアカスタードこと有栖川ひまりちゃんの誕生日であります。

f:id:h05tor:20220415214034j:plain

f:id:h05tor:20220415214508j:plain

©ABC-A・東映アニメーション

 

この有栖川ひまりちゃんについてですが、福原遥さんがCVであるのはもちろんですが、大好きなスイーツの話になると止まらないというオタク気質なところがなんとなく私自身に似ていてシンパシーを感じます。

(あれ?h05tor氏は自分自身をオタクだと認めていないんじゃなかったっけ)

(推しとか誕生祭とか言っている時点でオタクだろ)

(私はオタクではない!これらはただの推し行為だ!)

 

💛💛💛 HAPPY BIRTHDAY ひまりちゃん 🎂 💛💛💛

新年度明けましておめでとうございます&木之本桜誕生祭&相場

新年といえば1月1日、元日ですが年度初日は4月1日となっております。

つまり、

新年「度」明けましておめでとうございます

ということです。

実際のところ実生活においても1月1日より4月1日の方が新しい生活の始まりという実感が湧くのではないでしょうか?

なんだかんだで私も新卒で今の会社に入社してから5年目に入り(実は2018年は4/1は日曜だったので入社日は4/2)もう若手とは言えないような年次になりつつあります。

そして今年も新入社員が5人入社しました。数年前は私もあの新人の中に入っていたのですから不思議なものです。

ちなみにCCさくらの主人公の木之本桜ちゃんの誕生祭であったりもします。

どっかの記事で2次元の方のポートフォリオに柊まいんを筆頭とするCV.福原遥の強豪の中で〇〇系という集団の括りではなく唯一個人として孤軍奮闘している数少ないキャラであったりします。

Twitterでこういう話しても良かったのですが、総合垢のはずなのに調子に乗り過ぎて福原遥関係のアカウントとばかり相互フォローした結果、単推し垢化してしまいやりずらくなってしまった感が出てしまいました。(自縄自縛)

とはいえNHKアニメの同盟キャラとしてまいん側として扱っておりますので2次元ポートフォリオの上位にいる分には全く問題ないです。

そういえば先週の記事で本日4/1から実質だけでなく名目上も法的にも柊まいん政権になるとしてましたが昨日までの法的な政権ってもうこの記事が答えですよね。

(2018年4月1日から4年間在位していた模様。本日からも副大統領にとどまるとのこと)

 

あと相場の話。(半月前までネタ切れだったのに急に書きたいこと浅く広くだけど増えただけ)

  投資損益 損益前月比
2021/12/31 2212763 252087
2022/1/31 1580722 -632041
2022/2/28 1540027 -40695
2022/3/31 2268108 728081

年明けから株価、特にハイテク株やグロース株を中心に下げ、これらの銘柄の比率が多いVGT、QQQをメインで保有しているため私も盛大に被弾して1月はいきなり前年末から60万円を超えるマイナス、2月も一時持ち直しかけたものの結局マイナス、3月も上旬は瞬間的には前年末から-100万近くまで逝きましたが、そのあとインフレも金利上昇もウクライナ情勢も何も解決していないにもかかわらず回復して、しかも円安が急激に進んだため円ベースではなんとプラス転換してしまいました。

 

ちょっと~~待ってよ~~まだ買い増しナンピンできてないのに・・・・

 

もうこうなったら相場の天井までガチホでそこからドテン売りで大底買戻しだ!(絶対無理)

独裁政権()

h05torです。

 

「推し事」というタグなのにタイトルが独裁政権とはどういうことか。

なんか物々しい雰囲気しかしないぞ。

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

最近はご存じの通り世界情勢がこの有様であるため、私がよく見ているyahooニュースでも例の胸糞悪いニュースが多いです。

所謂ヤフコメ(私は投稿しませんが)を覗いていたら、何故か↓の投稿が個人的に刺さりました。

f:id:h05tor:20220325211652p:plain

最後に「ん」がつく指導者・・・・・・

私が2次元における最推しを「大統領」として〇〇政権として仕立て上げていることを鑑みると現政権は・・・・・

 

f:id:h05tor:20220325213551p:plain

柊まい「ん」・・・・・・・

 

これは見事に名前の最後に「ん」が付く最推し指導者ですね。

現在、2次元サイドにおいての推しは柊まいん一人で全体の2/3以上を占め完全に1強状態であることから独裁政権といっても過言ではない。

3次元サイドで私が「福原遥単推し」を嘘偽りなく継続していられるのも2018年秋以降実質的に私が柊まいん政権下にあるからである。

(実質的と書いたのは、名目上・法的には別のキャラがトップなのであるがここ数年の福原遥フィーバーにより完全に空気。なお福原遥さんの朝ドラヒロイン就任により流石に名実合わせた方がということになり来月初めから正式に柊まいん政権になる予定)

 

というわけで2次元側での私の最推しは柊まいんなのですが、それを他人に押し付けようということは決してしません。

人の好み・思想・性癖は多種多様であるべきであり、それこそが各人の人格でありますから「推し」を含めた自分の主義主張を他人にごり押しして強要することはその人の人格の侵害であります。

これは国家対国家であっても同じことでして、昨今のロシアとウクライナの戦争はロシアの現独裁者であるウラジーミル・プーチンの個人的な国家観・民族観の独りよがりな押し付けが本質であるように、結局のところ争いしか生みません。

 

推しへの周りに回って歪んだ愛や主義主張を自分の心の中に留めておく分には如何なる内容であっても正直自由だと思いますが、これを他人に強要する(「俺の推しが世界一可愛いに決まっている!」、「お前の推しなんかより俺の推しに乗り換えたほうがいい」等々)ことだけは争いと憎しみしか生まないので絶対にやってはならないと思います。

 

余談ですが私の歴代政権における名前の最後に「ん」が付くには続きがあって、名字の最初が「は行」という項目もあります。

実は柊まいんで2人目です。

 

要約すると名前の最後に「ん」がつくのは大体ヤバイってことでおk?

最近の相場について思うこと

h05torです。

先週は体調不良で更新できませんでした。

 

ネタもそんなにあるわけでもないので相場のお話にします。

 

先月末あたりの記事でまたお金減るんじゃねとしましたが、案の定投資収益はマイナス(-5万弱ぐらいだけどソーシャルレンディング系で相殺して-4万ぐらい)でした。ただ、1月ほどの爆下げではなかったので給料からの入金込みの総資産ベースでは辛うじてプラスに復帰できました。(残業代+独身実家暮らしこどおじだから13万入金できるのは秘密)

 

んでもって現在はどうなってるかというと主力のQQQの場合・・・

f:id:h05tor:20220318215856p:plain

3/14まであれからまた下げ続けた後、なんか急反発して先月末ぐらいまで戻っております。

ちょっと待て、まだ安値で仕込めてないからもう少し底這ってほしいんですけど

それではここから反発して上昇回帰するかということですがPER(ナスダック100・S&P500・ラッセル2000)の推移とチャート (stock-marketdata.com)によりますと先週末時点でQQQの元指数であるナスダック100の予想PERが23.6ということで、昨年末に30ぐらいあったのに比べるとかなり安くなっているようには思えるのですが、それでもコロナ前の水準に比べるとやや割高感が残っております。

今年に入ってからのPERの低下の原因としましては金利上昇による株式の相対的な優位性の低下があります。現在の米国10年債利回りが約2.2%、一方で先ほどのナスダック100のPER23.6の逆数から益回りを計算すると約4.2%と米国10年債より2ポイント上回っております。

この(株式の益回り(PERの逆数)- 米国10年債利回り)のイールドスプレッドがどれくらいであれば良いかということですが、バリュエーションから見た米国株の考え方 (pictet.co.jp)によりますと2010年以降の平均が2.6でおおよそ±0.8ぐらいの範囲に収まっております。

PERが高い→益回り低下→イールドスプレッド縮小ということで現在のスプレッドが約2.0であることを考えると2.6±0.8の範囲には収まっておりますがやや割高気味と言えると思います。(コロナショックからの回復以降ずっと割高ですが)

また、FRBが5月以降QT(量的引き締め)に踏み切る可能性が高いことから長期金利に上昇余地があり、株価が変わらない(PER一定、利益成長はここでは考慮しない)とするとイールドスプレッドが縮小するため、割高が進行してしまうため調整として株価が下落することになります。

なので、ここ数日株価が上向いているとはいえ、当面は良くてヨコヨコぐらいかなという感想です。

ただし、相場に絶対はありませんし、長期で見れば上昇するとは思っておりますので、ここで手放してたところで急騰する(逆神乙)ということは避けたいので目先の下落は受け入れつつ基本的にはホールドで行きたいと思います。

 

まあ今年の投資収益はマイナスでしょうけどね。

ソシャレンで10万ぐらいは相殺できるか?