Location via proxy:   
[Report a bug]   [Manage cookies]                

まじめに備忘録とか近況とか 誰も聞いていないけど

備忘録

書きたい、書けることがないので、デスクトップに控えていたメモをこちらにも保存する意味合いで投稿します。

1)改行の行き過ぎた空白行を削除

VS Codeを使っていて、コードの最後の行からの無駄な空白行を詰めてくれる設定はデフォルトでついているかと思いますが、コードの途中のいわゆる改行の行き過ぎた空白行は削除してくれません。

そこでできる対処は、置き換えで削除する方法です。
検索で正規表現を使用して置き換えします。

空白行削除 ^\n で検索して置き換え
改行を削除 \n で検索して置き換え

2)flaskで依存環境をすばやく(再)インストールする

仮想環境をさわった場合、flaskコマンドがflaskを見つけられなくなってしまう場合があります。
venvの再構築をしたりするのはめんどうです。
ルートにrequirements.txtを用意しておく。
中身は以下のようなかんじで。

flask==3.0.3
python-dotenv==1.0.1
requests==2.32.3

pip installの-rオプションでインストール

pip install -r requirements.txt

3)Pythonから離れて他の言語をさわっていると、Flaskのコマンドを忘れてしまいます。

flask --app api.index run --debug
flask --app api.index --debug run

上記などであれば正解なのですが、よく理解していなかったころ、思い出しながら間違ったコマンドをタイプしていました。

flask --app run api.index --debug

こんなかんじに間違うとローカルサーバ動作しません。
ターミナルからflask --helpで確認。

Usage: flask [OPTIONS] COMMAND [ARGS]...
--appはflaskのオプション
runはflaskのコマンド
--debugは runのオプション(flaskのオプションでもある)

なので、正しく理解していれば間違うことはないですね!

4)Goでテストするほどのコード書いていませんが

go test ./ 相対でモジュールを指定 モジュールのカレントで

go test モジュールのカレントではこれでok

go test -v 詳細表示

go test -v -run TestXxx TestXxxを指定して実行 -vはなくてもよい

go test -v -run "Xxx$" Xxxで終わるテストのみ実行 -vはなくてもよい

5)複数のmain()の対応

学習でコードを試してみたいときなど、複数のmain()があれなんで。
ファイルの最初に、

// go:build ignore

としておけば、実行はできるようになります。

自分は複数試したりしているときは、別のディレクトリに入れています。
そうでないと、エディタ上で警告などの表示がうるさくなりますから。

場合によっては別のディレクトリでは都合がわるいのかも?
今の自分にはよくわかりません。

近況

しばらくは、コマンドラインツールを作りたい一心で、Go言語をしていました。
フレームワークを使って作れるようにはなりましたし、標準ライブラリのflagのみでもほぼ同機能で完成まで作れました。
一旦、公開まで実際に試しましたが、学習レベルなので現在は公開はしていません。

コマンドラインツールを作成することはGo入門のよい学習教材だと思いました。
一連のGoでの開発の慣例が学べます。
コードに関しては、特にGoらしいこともないかもしれませんが。

その後、何を作ればいいだろうかと、モチベーションが切れました。

いつもFlaskはよくさわっているので、またPythonに戻っています。
こちらもpythonというかFlaskやらフレームワークをさわっている感じですけれど。

プログラミング+ビジュアル表現な制作ができるようになることが目標なんですが、数学の復習、6年分!ありますからまだまだ遠ーーーいです!!

VS Codeでは問題なしだがFlaskでエラーになった初歩的な過ち

Flaskでサイトを運用しています。
オーガニック検索だよりのサイトですので、Xでもサイトの告知をしてみようかとなったわけで、半自動ぐらいでXにポストできる機能をつけようとしたときの話です。
Flask外で直接実行する分にはエラーはなく、あとはimportして特定のルートでポストさせるだけだったのです。

VS Code上では問題なしなのに

ModuleNotFoundError: No module named 〜

エラーです。
VS Code上では問題ないように表示されていて、追加したimportにも波線の下線が付いたりしない。

エディタはエラーを出してくれませんが、Flaskがエラーを出します。
いつものように、flask --app api.index run --debugするとエラーになります。

おかしい。
とりあえずimportができていないようです。

Flaskを介せず直接に実行する場合にはエラーはなく、問題なくimportできていました。

このエラーの対処

from api import hoge

でok。

直接の実行時と階層は同じでimportを書くファイルが変わるだけだったので、import hogeのままでよいと思ってしまいましたが、Flask内ではモジュールディレクトapiの中なので、from apiが必要でした。

あわせエラー?

import hogeができていないので、あわせて以下のエラーも出してしまいましたが、

AttributeError: 'function' object has no attribute 〜

importを正しくすればokになります。


初歩的なミスをなくさないと〜!