PyOCR を Windows で動かしたい

この記事を作った動機 pyocrを使うおうとしたらライブラリだけじゃなくて、OCRを実際にする部分である tesseract をインストールしないといけないことが分かったので記録をとってみる。前提として Windows 環境上で作業していて、Python環境はすでに構築されていて機能するものとする。 ちなみに、躓いた点としては、tesseract をただインストールする必要があるだけでなく、環境変数Pathを通して、tesseractコマンドが使える状態しないと、pyocr が tesseract を見つけられないという点があった。 Windows と違って、Linux や Mac 系の環境では、tesseract をインストールした時点ですでにパスが通っているところにバイナリが配置され、追加の設定が不要ということがあるかもしれないが、現時点ではまだ確かめていない。 pyocr を使えるようにする手順 pyocr ライブラリの導入 pip install pyocr tesseract をインストール インストーラの取得 Home · UB-Mannheim/tesseract Wiki から、tesseract-ocr-w64-setup-XXXXXXXXXXXXXX.exeをダウンロードする。 日本語のOCRデータが含まれるように指定する インストーラを実行し進める。ただ単に進めるだけでなく、途中で日本語向けのOCRデータを含むように明示する必要がある。 インストーラを進めている途中で出てくる以下のパスは、のちにPathという環境変数を設定するために使うため、どこかにコピーしておく。私の環境では以下のようになった。 環境変数を通す インストーラで見えていた場所に対して、環境変数のPathを設定する。なお変更の反映にはターミナルなどの再起動が必要である。また設定したのにうまく反映されない場合は PC ごと再起動した方がいいかもしれない。 環境変数が通ると、コマンドプロンプトなどで以下のように表示されるはずである。 tesseract # Usage: # C:\Program Files\Tesseract-OCR\tesseract.exe --help | --help-extra | --version # C:\Program Files\Tesseract-OCR\tesseract.exe --list-langs # C:\Program Files\Tesseract-OCR\tesseract.exe imagename outputbase [options...] [configfile...] # # OCR options: # -l LANG[+LANG] Specify language(s) used for OCR. # NOTE: These options must occur before any configfile. # # Single options: # --help Show this help message. # --help-extra Show extra help for advanced users. # --version Show version information. # --list-langs List available languages for tesseract engine. 環境変数がうまく通ってない場合の例(PowerShell) ...

December 2, 2025

React を使った Web アプリを Android アプリにしたい

この記事を作った動機 React で作った Web アプリを Android に移植しようとしたら超絶めんどくさかったので、記録するだけ。 自分の試した構成 Vite React TypeScript Android Studio (with SDK) npm create vite@latest 使った汎用コマンド集 すべての環境変数をリスト (Windows,PowerShell) gci env:* | sort-object name 環境変数を新規作成 (Windows,PowerShell) # 具体例 ANDROID_HOME にパスを設定する $env:ANDROID_HOME = "C:\Users\[userName]\AppData\Local\Android\Sdk" 特定の環境変数に対してパスを追加 (Windows,PowerShell) # 具体例 ANDROID_HOME にパスを追加設定する $env:ANDROID_HOME += ";C:\Users\[userName]\AppData\Local\Android\Sdk" 準備 Capacitor を使えるようにする 必要なパッケージのインストール npm i @capacitor/core npm i @capacitor/android 初期化する npx cap init android 向けに初期化する npx cap add android ANDROID_HOMEを設定する エラー例 Android SDK のパスが、ANDROID_HOMEとして環境変数に設定されていない場合は、以下のようなエラーが出てくる。 npx cap build android # × Running Gradle build - failed! # [error] # > Configure project :app # WARNING: Using flatDir should be avoided because it doesn't support any meta-data formats. # > Configure project :capacitor-cordova-android-plugins # WARNING: Using flatDir should be avoided because it doesn't support any meta-data formats. # FAILURE: Build failed with an exception. # * What went wrong: # Could not determine the dependencies of task ':app:bundleReleaseResources'. # > SDK location not found. Define a valid SDK location with an ANDROID_HOME environment variable or by setting # the sdk.dir path in your project's local properties file at 'C:\Users\userName\work\TODOListApp\TODO # List\android\local.properties'. # * Try: # > Run with --stacktrace option to get the stack trace. # > Run with --info or --debug option to get more log output. # > Run with --scan to get full insights. # > Get more help at https://help.gradle.org. # BUILD FAILED in 1s ...

November 21, 2025

Git でローカルリポジトリの変更を退避、破棄する

この記事を作った動機 単に、git pullして変更をリモートリポジトリからローカルリポジトリに反映しようと思ったときに、ローカルリポジトリ側に未反映の変更があり、衝突してマージに失敗することがある。そのような場合に、とにかくそのローカルリポジトリにある変更内容を破棄して、リモートリポジトリの変更を反映したいとき用に、記録をとりたい。 ローカルリポジトリの変更内容を保持しておきたいときは、git stash dropをする必要はない。 とにかくリモートリポジトリの変更内容を反映する例 リモートリポジトリの変更をローカルに反映しようとしてエラーになる git pull remote: Enumerating objects: 56, done. remote: Counting objects: 100% (56/56), done. remote: Compressing objects: 100% (15/15), done. remote: Total 56 (delta 41), reused 56 (delta 41), pack-reused 0 (from 0) Unpacking objects: 100% (56/56), 6.00 KiB | 79.00 KiB/s, done. From github.com:hello30190f/OneNoteAlternative c539ef0..a484d7c master -> origin/master Updating c539ef0..a484d7c error: Your local changes to the following files would be overwritten by merge: firstPrototype/backend/dataServer/notebookData/test/contents/test.json Please commit your changes or stash them before you merge. Aborting ローカルリポジトリの変更を退避する git stash Saved working directory and index state WIP on master: c539ef0 save 退避したローカルリポジトリの変更を破棄する git stash drop Dropped refs/stash@{0} (e64f70a6e978cf0a154795872e0b07f6530123aa) ローカルリポジトリの変更を退避または破棄したことで、衝突しなくなる git pull Updating c539ef0..a484d7c Fast-forward .../commands/notebookAndPage/createNotebook.py | 6 +- .../commands/notebookAndPage/deletePage.py | 4 +- .../commands/notebookAndPage/updatePage.py | 4 +- firstPrototype/backend/dataServer/helper/common.py | 3 +- .../backend/dataServer/interrupts/controller.py | 10 +-- .../notebookData/newnote/contents/test.md | 3 +- .../notebookData/newnote/contents/testa.md | 10 ++- .../dataServer/notebookData/newnote/metadata.json | 17 +++- .../notebookData/newnote/metadata.json.backup | 17 +++- .../notebookData/newntoe/contents/asfsdfsdsss.md | 4 +- .../dataServer/notebookData/newntoe/metadata.json | 13 ++- .../notebookData/newntoe/metadata.json.backup | 13 ++- .../notebookData/test/contents/test.json | 99 +++++++++++++++++++++- .../notebookData/test/contents/test/anArticle1.md | 13 ++- .../test/contents/test/test2/testaaaa.json | 53 +++++++++++- .../notebookData/test/contents/test1.json | 11 +++ .../dataServer/notebookData/test/metadata.json | 25 +++++- .../notebookData/test/metadata.json.backup | 25 +++++- .../backend/dataServer/type/pages/free.py | 2 +- .../backend/dataServer/type/pages/markdown.py | 2 +- .../src/modules/FakepagesPath.tsx | 16 +++- firstPrototype/note/architecture.md | 2 +- 22 files changed, 321 insertions(+), 31 deletions(-) create mode 100644 firstPrototype/backend/dataServer/notebookData/test/contents/test1.json 参考にしたサイトとか Git - git-stash Documentation https://git-scm.com/docs/git-stash (2025年11月12日)

November 12, 2025

GRUB で Windows も起動する

この記事を作った動機 単に今までめんどくさくて放置していた、Windows と Linux の デュアルブート環境において、GRUB を利用しているとき、Windows OS の選択肢が出てこないということについて、対応した時にわかったことを記録したいというだけ。 ちなみに今回の作業をするまでは単に BIOS 側で、.efi ファイルを指定することで、Linuxを起動するエントリと、Windowsを起動するエントリを作って、BIOSのブートメニューで選択していた。 なお今回の記事では前提として、GRUB が入っており、以下に示すコマンドはすでに使えることを想定している。 grub-install grub-mkconfig 環境 System Details Report(GNOME settings からのコピペ) Report details Date generated: 2025-08-04 14:45:58 Hardware Information: Hardware Model: Dell Inc. XPS 15 9575 Memory: 16.0 GiB Processor: Intel® Core™ i7-8705G × 8 Graphics: Intel® HD Graphics 630 (KBL GT2) Disk Capacity: (null) Software Information: Firmware Version: 1.20.0 OS Name: Arch Linux OS Build: rolling OS Type: 64-bit GNOME Version: 48 Windowing System: Wayland Kernel Version: Linux 6.15.7-arch1-1 パティーション構成 どんなパーティション構成で、デュアルブートを構成しているかも示す。Windows も Linux もどちら側も UEFI で動作しており、それぞれ個別に起動用の EFI パーティションを持っているという構成である。 ...

August 4, 2025

ネットワークドライブの削除と作成

この記事を作った動機 ネットワークドライブがつながらないとき、再接続しようと思うと、記録がない場合不便すぎたので記録するだけ。 やり方 前提として、以下の項目を置いておく Z: ドライブ 192.168.1.33 SMB サーバの IP datafolder マウントポイント 接続 net use Z: \\192.168.1.33\datafolder /USER:[UserName] [Password] 削除 net use Z: /Delete 参考にしたサイトとか Net use | Microsoft Learn https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/gg651155(v=ws.11) (2025年8月2日) Deleting Mapped network drive - Microsoft Q&A https://learn.microsoft.com/en-us/answers/questions/3253887/deleting-mapped-network-drive?forum=windows-all&referrer=answers (2025年8月2日)

August 2, 2025

パスワードを無期限で利用できるようにする

この記事を作った動機 最近 Win 11 24H2 を使っているときに、「パスワードの有効期限が切れています」とログオン時にパスワードの再設定を求められるということがあった。なぜか作成したアカウントの有効期限がデフォルトで設定されている状態であった。 それで調べてみるとGUI操作で、設定する方法ばかりヒットして、めんどくさかったので、コマンドでどうにかできないか試したことを記録するだけ。 やり方 以下はすべてのアカウントに対して設定を反映する方法である。一つ一つやる方法もあるらしいが、試していない。 コマンド (base) PS C:\Users\username> net accounts /maxpwage:unlimited コマンドは正常に終了しました。 全体像 (base) PS C:\Users\username> net accounts 強制ログオフまでの時間 (分): しない パスワード変更禁止期間 (日数): 0 パスワード有効期間 (日数): 42 最小パスワード長: 0 使用できない旧パスワード数: なし ロックアウトしきい値: 10 ロックアウト期間 (分): 10 ロックアウト監視ウィンドウ (分): 10 コンピューターの役割: WORKSTATION コマンドは正常に終了しました。 (base) PS C:\Users\username> net accounts /maxpwage:unlimited コマンドは正常に終了しました。 (base) PS C:\Users\username> net accounts 強制ログオフまでの時間 (分): しない パスワード変更禁止期間 (日数): 0 パスワード有効期間 (日数): 無制限 最小パスワード長: 0 使用できない旧パスワード数: なし ロックアウトしきい値: 10 ロックアウト期間 (分): 10 ロックアウト監視ウィンドウ (分): 10 コンピューターの役割: WORKSTATION コマンドは正常に終了しました。 (base) PS C:\Users\username> net user username ユーザー名 username フル ネーム コメント ユーザーのコメント 国/地域番号 000 (システム既定) アカウント有効 Yes アカウントの期限 無期限 最終パスワード変更日時 2025/05/29 21:33:43 パスワード有効期間 無期限 パスワード次回変更可能日時 2025/05/29 21:33:43 パスワードあり Yes ユーザーによるパスワード変更可能 Yes ログオン可能なワークステーション すべて ログオン スクリプト ユーザー プロファイル ホーム ディレクトリ 最終ログオン日時 2025/05/29 21:33:44 ログオン可能時間 すべて 所属しているローカル グループ *Administrators *Users 所属しているグローバル グループ *なし コマンドは正常に終了しました。 参考にしたサイトとか Set User Password to never expire | NTLite Forums https://www.ntlite.com/community/index.php?threads/set-user-password-to-never-expire.3328/ (2025年5月29日)

May 29, 2025

カーソル画像の保存場所を見つける

この記事を作った動機 新しくPCを導入したときに、カスタムのカーソルがどこに保存されているかわからなくなったので、どうやって調べればいいか記録するだけ。 方法 レジストリエディタを開く どんな方法でもいいし無数にやり方がある。 Win + R を押して、“regedit"と入力し、実行する スタートメニューから検索で"レジストリ"と調べる エクスプローラーからregedit.exeを実行する \HKEY_CURRENT_USER\Control Panel\Cursors を開く データの部分のパスを確認 参考にしたサイトとか Windows の マウスポインター をリセット #Windows10 - Qiita https://qiita.com/c-toyama/items/9c150c69f3371904f130 (2025年5月25日)

May 25, 2025

ローカルリポジトリをリモートへアップロード

この記事を作った動機 単にすでに存在する、git リポジトリを LAN 内の Gitea 上にアップロードするための方法の簡易的なメモ。Githubの場合でも同じようなことはできると思う。(そもそも github のページ参考にしたし) やり方 リポジトリの URL は、“https://aaa.info/urlToAremoteRepo.git" と仮定している。 リポジトリの作成(リモート側) リモート側に、最小構成で、readme や license、gitignore を追加しないようにして空っぽのリポジトリを作成する。 リポジトリの URL を設定する(ローカル側) git remote add origin https://aaa.info/urlToAremoteRepo.git ブランチの確認(ローカル側) アップロードしたいブランチの確認。今回は “master” という名前のブランチを、リモートにアップロードする。 git branch * master アップロード(ローカル側) git push origin master リポジトリが設定できたかの確認方法 git remote -v origin https://aaa.info/urlToAremoteRepo.git (fetch) origin https://aaa.info/urlToAremoteRepo.git (push) 参考にしたサイトとか Adding locally hosted code to GitHub - GitHub Docs https://docs.github.com/en/migrations/importing-source-code/using-the-command-line-to-import-source-code/adding-locally-hosted-code-to-github (2025年5月19日)

May 19, 2025

Google Chrome のデフォルトブラウザポップアップの停止 (Windows)

この記事を作った動機 Windows機でもなんか鬱陶しかったので、設定するついでに記録するだけ。 やり方 レジストリを設定する。 stop.reg 以下は、Disable Google Chrome asking to be Default Browser in Windows 11 | Windows 11 Forumの引用 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome] "DefaultBrowserSettingEnabled"=dword:00000000 最近気づいたこと(2025年5月18日) 今回のレジストリ設定をすると、「組織に管理されています」と出てくることが分かった。どうやらレジストリ経由で、Google Chrome ポリシー設定をすると、そういうことになる模様。まあ何かウイルスが入って、悪さしているとかではないので、特に問題はなさそうである。 気になるなら? この表示が嫌ならば、単にレジストリ設定を消せば、解決されると思われる。思いっきり “Chrome” と書かれたレジストリ設定を消せばいいと思われる。ただ、それだと今回の目標である、デフォルトブラウザを尋ねさせないという事は、両立できない。。。 というか結構小難しく考えていたが、案外ポリシー設定って単純なレジストリ設定でできることに、今回の出来事で気づいた。 気づきのきっかけ ちなみになんでこんなことに気づいたかといえば、設定画面に気色悪い「組織に管理されています」という表示が出ていることに気づいて、外し方を調べていた。 そしたら、Error: How To Fix-Google Chrome Your Browser is Managed By Your Organisation - YouTube の動画がヒットし、Download Chrome Policy Remover - HackerDoseの bat スクリプトを中身を読んでから、余計なことをしてなさそうだと実行したところ、気づいた。 どうもこのスクリプトは、動作の一部として、“HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome” あたりのキーも消してた。そこにあった設定は、今回設定した、デフォルトブラウザを尋ねない項目についても含む。そのツールを実行したことによってそのキーも消えて、「組織に管理されています」とは出てこなくなった代わりに「デフォルトブラウザにしてください」と広告は出てくるようになった。 そうして事態に気づいたわけで、一応なんか書いてないと見た人が不安になるかなと思って、適当に記録を残しておくことにした。 関係のありそうなページ Google Chrome がいちいちデフォルトブラウザにするようにと強引に広告出してくるのを止める 参考にしたサイトとか Disable Google Chrome asking to be Default Browser in Windows 11 | Windows 11 Forum https://www.elevenforum.com/t/disable-google-chrome-asking-to-be-default-browser-in-windows-11.27008/ (2025年5月13日) Error: How To Fix-Google Chrome Your Browser is Managed By Your Organisation - YouTube https://www.youtube.com/watch?v=LX54VkBl17I (2025年5月18日) Download Chrome Policy Remover - HackerDose https://hackerdose.com/downloads/utility/chrome-policy-remover/ (2025年5月18日)

May 13, 2025

git に証明書を追加する

この記事を作った動機 最近、いろいろ作ってみてはファイルがあっちゃこっちゃ行ってぐちゃぐちゃになっていたので、整理の一環として、LAN内で Gitea なるものを動かしてみている そこで、内部ネットワークで使っている証明書を windows 側にいれても git がそれを直接は使ってくれなかったので、SSL 証明書の設定の仕方を自分用に記録するだけ。(すぐ忘れるし) やり方 # 多分 global オプションはつけないほうがいいかも。全体的に証明書情報を変えてしまい、ほかのリポジトリで、githubから何かしようとか思ったとき、多分証明書が合わなくてエラーを吐いてしまう。 # git config --global http.sslCAInfo /path/to/cert.pem git config http.sslCAInfo /path/to/cert.pem 参考にしたサイトとか configure Git to accept a particular self-signed server certificate for a particular https remote - Stack Overflow https://stackoverflow.com/questions/9072376/configure-git-to-accept-a-particular-self-signed-server-certificate-for-a-partic (2025年5月11日)

May 11, 2025