Androidアプリの開発で、ある特定のGoogleドライブ内のファイルを操作する(読み書きする)プログラムを実行すると、表題のように
- Requested entity was not found
情報工学技術を利用した教育支援、いわゆる教育工学の研究やってます。研究に関係する技術動向(プログラミングねた)や、日常の覚書き、呟きなどを書いていこうかと思います。今のところ、初歩的なプログラムネタばっかりですが、、、、長い目でお付き合いください。
Androidアプリの開発で、ある特定のGoogleドライブ内のファイルを操作する(読み書きする)プログラムを実行すると、表題のように
とりあえずテンプレ的なサンプルコードをアップします。ポイントは以下の通り。
1.GUIウィジェットを先に宣言しとく。宣言しなくてもレイアウトに直接ぶっ込むこともできますが、それはちょっとスマートではないので。。。(個人的見解)
2.ウィジェットのレイアウトはリストで並べる(ここがPySimpleGUIのキモとも言える)。サンプルのように書くことで、並ばせかたを行列のイメージで配置できる。もちろん、frameやcolなどのオブジェクトを利用することでもう少し凝ったこともできるが、この記事では範囲外とする。
3.ウィンドウ表示ループは関数化しておく。下記のshow_window関数がそれに該当する。ここでメインウィンドウを生成して、無限ループでイベントを待つ(read関数)。
4.イベントの種類や、それに付随する情報がread関数の引数で送られてくる。ここで、ウィンドを閉じた時はイベントを抜けて終了するように書いておかないと、後でいろいろ厄介。この記述は必須のテンプレと思われる。
5.本サンプルは、ボタンクリックイベントに対応した記述をしているが、ボタンクリックイベントの識別は、ボタンのラベル名が対応しているらしい。これが嫌な場合は、key属性を使うとよい感じ。
今年から、ゼミでもPySimpleGUIを使うことにしたのでその第1報。
PySimpleGUIとは
PythonでデスクトップGUIアプリを作成するのはどうすればいいか?というのはいろいろ議論があるようですが、ここ最近は、PySimpleGUIでよくね?という風潮になっているようです。PySimpleGUIは2018年に出てきた新参のライブラリです。
TkinterかPySimpleGUIか?
Python標準のGUIライブラリとしては、Tkinterがあります。Tkinterについては
という特徴があります。最後の書き方が昔風というのは、私のような老人には意外とすんなり理解できるところでもあります。が、PySimpleGUIは今風ですね。意外と日本国内でもブログ記事が多くなってきたので、ここは思い切ってPySimpleGUIをゼミの標準ライブラリとしてみました。
ライブラリのインストール方法
下記の通りpipでインストールできます。
以後、PySimpleGUIのネタをちょくちょく書くことになるかもしれません。
関連リンク
表題のようなエラーが出た場合は、ネットワークにうまく接続できてないというのが原因です。解決策としては
先日、PCを買い替え、Windows11にしたところ、マイクの音がやけにおかしいという状況になりました。具体的には
FlutterでFirebase使ったGoogle認証をする際に、よくこのエラーに遭遇するのでメモ書き。詳細は、参考サイトを参照のこと。
このエラーに対する解決策は主に以下の方法
参考サイト
FlutterのGoogle siginの処理で初歩的なミスで躓いたのでメモ書き。(なお、FlutterでのGoogle siginの処理のための各種処理の話はここでは省略します)
【症状】
表題のようなエラーが出た場合、下記のように対応。
(1)gradle-wraper-propertiesの中身でgradleのバージョンを変更
distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-all.zip
FlutterでGoogle認証するためのメモ書きです。メソッドがバージョンによって変わっているのか、ネットの情報どおりに書いても動かなかったケースがありました。今回のケースでは
という記述ですね。前者だと認証がいつまで経っても終わりませんでした。Flutterに最近手をつけ始めてますが、Gradle,Dart, Flutterなどのバージョン調整がいろいろめんどくさいですね。
初歩的ですがメモ書き。
GAS(Google App Script)で正規表現を使ってReplace関数を使うときは、第一引数に直接正規表現を記述することができます。例えば、replaceを複数の対象に実行したい場合
result = result.replace(/abc/g, "ABC"); |
var target = "abc"; |
Google App Scriptの中で、Google Driveを操作するコードを書いたとき、表題のように
Zappaを使ってAWS LambdaにFlaskのスクリプトをアップしようとしたら、表題のようなエラーが。。。どうやら、最近この現象が起き始めているようで、Githubのissuesにも取り上げられているようです。
解決策
当面の解決策は、
おちラボでは、ようやく、、、、よーやく研究室の公式DBをSimpleDBからDynamoDBに移行しました。
なぜ今まで移行しなかったか?
DynamoDBについては、2012年に
以前(といっても4、5年くらい前)、WindowsでBLEのプログラミングしようと思ったら、情報も少なくすごく大変で、卒研生の研究時間の大半をBLE接続に費やしてしまった経験があり、もう二度とWindowsでBLEプログラムをするもんか。。。と誓ったことがありましたが、今は便利になってきてますね。Pythonであっさりできます。
Bleakというライブラリ
PythonでBLEというのはまあ以前から目にしたことはあり、ちょっとトライしたことがありましたが、最近はBleakという便利なライブラリがあります。Windows,Mac,Linuxで動作するという。。
asyncioで非同期処理
Bleak自体の使い方は超シンプルなのでほぼ説明不要。肝は、asyncioで非同期処理をするということですね。
Zappaを使うと、AWS Lambda上にてウェブアプリをお手軽にDeployさせることができます。おちラボで動かしているのはFlaskのアプリなんですが、1つだけ問題が。。。。
ディレクトリ階層に余分なprefixがつく問題
ZappaでアップロードしたURLには、/dev/みたいな余分なURL(Stageという概念ですね)が付いちゃいます。これはAPI Gatewayの仕様らしく、回避不能のようです。api的な使い方だったら別にそれを前提にしておけばいいんですが、アプリとしてDeployする場合、アプリ内で自身の別URLを呼ぶ場合に都合が悪くなります。例えば、
Blazorというのが面白そうなので、遊んでみようかと思ったら、デフォルトのプロジェクトでいきなり
というエラーに遭遇したのでいろいろ調べて動くようになったメモ書きです。
.NET5.0にしたほうがいいかも
もしかしたら、直接は関係なかったかもしれませんが、
Blazor 3.2 WebAssembly プロジェクトは、.NET Standard 2.1 (的な話が、Microsoftのサイトに書いてました。まあ、流石に NET Standard 2.1 はもう古い気もするので、.NET5でプロジェクトを作成したほうがいいですね。PCに.NET5のSDKが入っていれば作成時に指定できます。指定できなければ入ってないのでダウンロードしてインストールしてください。<TargetFramework>netstandard2.1</TargetFramework>
) をターゲットにするようコンパイルされていました。 ASP.NET Core 5.0 では、Blazor Server と Blazor WebAssembly プロジェクトの両方で .NET 5.0(<TargetFramework>net5.0</TargetFramework>
) がターゲットとされます。
Youtube Liveをやってみようということで、先日から試行錯誤していたのですが、配信がはじまらず、クルクルと待機のアイコンが回るばかり、、ということがたまにありました。それも別のPCだったらちゃんと動いたりして、ネットワークの問題か?機種依存か?など、、移行錯誤しましたが、しょーもない理由でした。
原因:カメラ、マイクは正常に使えているか確認しましょう
私の場合、原因はマイクでした。BLEで接続する無線マイクだったんですが、USBトングルをPCに挿して、それはちゃんと認識されていて、、という状況で、問題ないはずなのに、なぜか配信が開始せず。。。で、USBトングルを抜いたら開始されて、刺したら開始しない。。。どーいうこと???と原因は、「マイクの電源が入ってなかった」ということでした。ほんとくだらない理由ですが、マイクは意外と確認しにくいところなので、要注意です。
補足:ネットワークのポートも注意
YouTube LiveはTCP1935(RTMP)も利用するようなので、これも要注意です。ここが塞がってると当然配信は始まりません。
Zoomで発表会をするときに、ベル係やタイムキーパーの役割をどうするかで悩むときがありますね。マイクでベルを音を拾うのも味気ないし。。。という方への情報です。
要求仕様
用意するソフト