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

lualatex で framed が使えない (パッケージ不足)

この記事を作った動機 lualatex でframedというパッケージを使おうとしたところ、framedに関するパッケージがないと言われ、対応に手間取ったので記録したい。 エラーが出たときにインストールしていたTexLiveのパッケージ local/texlive-basic 2025.2-2 (texlive) TeX Live - Essential programs and files local/texlive-bin 2025.2-2 TeX Live binaries local/texlive-langcjk 2025.2-2 (texlive-lang) TeX Live - Chinese/Japanese/Korean (base) local/texlive-langjapanese 2025.2-2 (texlive-lang) TeX Live - Japanese local/texlive-latex 2025.2-2 (texlive) TeX Live - LaTeX fundamental packages local/texlive-latexrecommended 2025.2-2 (texlive) TeX Live - LaTeX recommended packages local/texlive-luatex 2025.2-2 (texlive) TeX Live - LuaTeX packages local/texlive-plaingeneric 2025.2-2 (texlive) TeX Live - Plain (La)TeX packages 問題があるとき 少なくとも、Arch linux環境においては、texlive-full以外の最小構成で TexLive をインストールしていると、パッケージがそろっていないことがあり、以下のようなエラーになることがある。 ...

November 19, 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

Guacamole と RDP

このページは、まだ未完成です。。。 nicotalk&キャラ素材配布所 http://www.nicotalk.com/charasozai_kt.html (2024年5月16日) この記事を作った動機 最近 Microsoft 社のネイティブの RDP クライアントや MS Store で配布されている純正 RDP クライアントや Windows に標準搭載されている RDP クライアントプログラムに不満があるというのがあった。 ちょっと前までは、Windows 環境では標準搭載されている RDP クライアントプログラムを使っていた。Windows に対してのRDP接続では自動的にクライアントとRDP接続先が、画面の解像度やスケーリング情報をやり取りしていたため 問題なしとしていたし、 RDP 接続先としての Linux 環境側も X11 の設定を使い、手動で解像度を変えることで対応していて、それでいったん良しとしていた。 しかし、Linux 環境に RDP 接続する場合において、GNOME 49 の本格的な X11 環境が廃止があり、簡単に画面の解像度を変更できなくなったため、そうとは行かなくなった。 それで、私の環境でも NVIDIA 製 GPU を使っていても、Wayland にしないと、更新後 gdm サービスが立ち上がらないということになってしまったため、NVIDIA が提供する X11 上で動作する設定画面が使えなくなった。EDID という、ディスプレイの情報をローレベルで強引に書き換えるなどしなければ、自由な解像度で RDP 接続先としての Linux 環境が使えなくなってしまった。 こうして、いろんな我慢が積み重なり、そろそろいい加減何とかしようと思って、 Guacamole を見つけ、試していたというのがあった。私の今の理解だと、Guacamole とは、apache から出ている Tomcat 上で動作し、ブラウザでアクセスすることで使うことができる RDP VNC その他もろもろのクライアントとして使うことができる Web アプリという認識である。 とりあえず現状ではすべてについて記録を一気にとるのは現実的ではなかったので、とりあえず、書きやすいところや、記録に残しておきたいところを優先的に先に記録を残してみることにした。 Guacamoleが動作している様子 ログイン画面 接続先選択画面 動いている様子 ...

October 30, 2025

named のキャッシュを消す

この記事を作った動機 ある時、ChatGPT を使っていて、うまく設定が読み込めないという時があったときにそれについて調べてみたら、DNS 周りのキャッシュがおかしい説というのがあり、named のキャッシュを消そうとしてやり方がわからなかったので、自分用に記録するだけ。 設定する 少なくとも私の環境では、最初から rndc コマンドは使えるようになっておらず、設定が必要だった。rndc-confgen を使うことで、コンフィグは生成できるので、出てきたものをそれぞれ、named.conf と rndc.conf に貼り付ければとりあえずは動いた。 まだ設定がないときの rndc コマンドの挙動 sudo rndc status # rndc: no server specified and no default rndc status -s localhost # rndc: no server specified and no default rndc-confgen で設定を生成する # sudo rndc-confgen [sudo] share のパスワード: # Start of rndc.conf key "rndc-key" { algorithm hmac-sha256; secret "secretString"; }; options { default-key "rndc-key"; default-server 127.0.0.1; default-port 953; }; # End of rndc.conf # Use with the following in named.conf, adjusting the allow list as needed: # key "rndc-key" { # algorithm hmac-sha256; # secret "secretString"; # }; # # controls { # inet 127.0.0.1 port 953 # allow { 127.0.0.1; } keys { "rndc-key"; }; # }; # End of named.conf 設定を貼り付ける /etc/rndc.conf (なければ作成する) key "rndc-key" { algorithm hmac-sha256; secret "secretString"; }; options { default-key "rndc-key"; default-server 127.0.0.1; default-port 953; }; /etc/named.conf (追記する) key "rndc-key" { algorithm hmac-sha256; secret "secretString"; }; controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { "rndc-key"; }; }; systemd で named を再起動する sudo systemctl restart named キャッシュを削除する sudo rndc flush 参考にしたサイトとか rndc 鍵 (rndc.key) の作成 - hijiri-0404’s blog https://hijiri0404.hatenablog.com/entry/2015/03/05/000245 (2025年10月2日) domain name system - DNS on Redhat - rdnc: no server specified and no default - Server Fault https://serverfault.com/questions/231749/dns-on-redhat-rdnc-no-server-specified-and-no-default (2025年10月2日) BIND のキャッシュを消去する (CentOS 5.5): Linux の使い方 https://ez-net.jp/article/28/KPrxdINA/6oV8mNixA7et/ (2025年10月2日)

October 2, 2025

Linux カーソル 設定や作成

このページは、まだ未完成です。。。 nicotalk&キャラ素材配布所 http://www.nicotalk.com/charasozai_kt.html (2024年5月16日) この記事を作った動機 Linux 環境 + GNOME におけるカーソルテーマのインストールや作り方がわかりにくかったので自分用にまとめを作りたい。作り方の部分に関しては、主に、Create your own mouse cursor theme | Developer のやり方を元にしている。 まだ、現段階(2025/9/28)では、何も手を付けてなくて、調べたことをまとめ、とりあえずカーソルテーマを作るための一筋の段取りを見立てるという段階なので、実際にこのやり方が機能するかは確かめられていない。この記事はその過程において、思考整理的な意味がある。 使うツール GNOME tweaks xcursorgen yay -S xorg-xcursorgen gnome-tweaks # pacman -S xorg-xcursorgen gnome-tweaks カーソルの設定の仕方 GNOME tweaks を使う 以下は、カーソルテーマ設定画面の例である。 カーソルのインストール カーソルデータのフォルダ構造 cursorThemeName/ ├── cursors │ ├── default │ └── ... # 他にも色々ある └── index.theme local index.theme を含むフォルダごと以下のディレクトリに配置する。 ~/.local/share/icons/ global index.theme を含むフォルダごと以下のディレクトリに配置する。 /usr/share/icons/ カーソルの作り方 カーソル専用のフォルダを作る cursorThemeName/ ├── cursors # フォルダ └── index.theme # プレインテキスト index.theme を書く とりあえずこのファイルがあればとにかくテーマとして GNOME tweaks などからは認識される。 ...

September 28, 2025

Linux MIDI をとりあえず使えるようにする

この記事を作った動機 Linux 環境を使っていて、ソフトウェアシンセサイザー?とか、適当にネットでダウンロードしてきたMIDIファイルを再生するとかやってみている。 それで、Linux 環境における MIDI では、ちょっとすぐにはわからないようなことが必要だとわかったので、それをノートとして使っているこのブログに記録しようと思った。 使っているソフト Surge XT Drumstick MIDI Midi を使う 毎回起動時に特定のドライバを読み込まないと、midi が使えないようで、Drumstick MIDI は MIDI setup を開く段階でクラッシュした。 やること 有効化 sudo modprobe snd_virmidi 無効化 sudo modprobe -r snd_virmidi 起動時に自動で読み込まれるようにする /etc/systemd/system/midi.service [Unit] Description=load and unload virtual midi driver [Service] Type=simple User=root ExecStart=modprobe snd_virmidi ExecStop=modprobe -r snd_virmidi Restart=on-abort [Install] WantedBy=multi-user.target midi.serviceサービスの有効化 sudo systemctl enable midi ドライバを読み込む前の様子 ちなみに以下のエラーや挙動は、ドライバを読み込んでから、ドライバを無効化したあとに試すと症状が再現しない。再起動後は、またドライバを読み込むまで症状が再現している。現時点で私は、この挙動については正直細かくはわかっていない。 エラーが出る例 (Drumstick MIDI) Active MIDI Inputs が何も出てこない例 (Surge XT) MIDI の設定をする 基本的には、Midi Through を使っておけば、ソフトウェア上では、音を鳴らせるところまで持っていける模様である。 ...

September 24, 2025

linux カーネルの更新に失敗する

この記事を作った動機 単に linux カーネルの更新に失敗することに気づいたので、症状と対処法を記録するだけ。ていうか調べたらすでにいっぱい記事あるけど、まあ自分用の記録として。 環境 System Details Report Report details Date generated: 2025-08-31 20:19:38 Hardware Information: Hardware Model: Dell Inc. XPS 13 9365 Memory: 8.0 GiB Processor: Intel® Core™ i7-8500Y × 4 Graphics: Intel® UHD Graphics 615 (AML-KBL) Disk Capacity: 1.0 TB Software Information: Firmware Version: 2.24.0 OS Name: Arch Linux OS Build: rolling OS Type: 64-bit GNOME Version: 48 Windowing System: Wayland Kernel Version: Linux 6.14.6-arch1-1 症状 カーネルが細分化された結果、従来のカーネルとうまく噛み合わず、更新に失敗する。 yay # ... # (895/895) パッケージの整合性をチェック [############################] 100% # (895/895) パッケージファイルのロード [############################] 100% # (895/895) ファイルの衝突をチェック [############################] 100% # エラー: 処理を完了できませんでした (衝突しているファイル) # linux-firmware-nvidia: /usr/lib/firmware/nvidia/ad103 がファイルシステムに存在しています # linux-firmware-nvidia: /usr/lib/firmware/nvidia/ad104 がファイルシステムに存在しています # linux-firmware-nvidia: /usr/lib/firmware/nvidia/ad106 がファイルシステムに存在しています # linux-firmware-nvidia: /usr/lib/firmware/nvidia/ad107 がファイルシステムに存在しています # エラーが発生したため、パッケージは更新されませんでした。 # -> Failed to install layer, rolling up to next layer.error:error installing repo packages # ... 対処方法 単に linux と linux-firmware を再インストールする。 ...

August 31, 2025

VLC 動画を再生できないことがある

この記事を作った動機 なんか最近 VLC をただパッケージマネージャでインストールするだけでは、デコードやら何やら色々必要なプラグインが欠けた状態になるらしく、まともに動画を再生できないということがあったので記録するだけ。 うまく動画が再生できないことがわかったあと、pacman を使うことで、plugin として存在していて、まだインストールしていないパッケージがあることを理解した。それで欠けていそうなパッケージをインストールしてみると問題が解決したので、そのことを忘れないうちに残しておきたい。 pacman -Qi vlc # Name : vlc # Version : 3.0.21-27 # Description : Free and open source cross-platform multimedia player and framework # Architecture : x86_64 # URL : https://www.videolan.org/vlc/ # Licenses : GPL-2.0-or-later LGPL-2.1-or-later # Groups : None # Provides : None # Depends On : bash hicolor-icon-theme vlc-gui-qt=3.0.21 # Optional Deps : vlc-gui-ncurses: for ncurses TUI # vlc-gui-skins2: for Skins2 GUI # vlc-plugins-all: for all plugins # vlc-plugins-extra: for extra plugins # vlc-plugins-visualization: for visualization plugins # vlc-plugin-aalib: for ASCII art video output support # vlc-plugin-aom: for AOM AV1 codec support # vlc-plugin-aribb24: for ARIB STD-24 codec and demux support # vlc-plugin-aribb25: for ARIB STD-25 stream filter support # vlc-plugin-ass: for SSA/ASS subtitle codec support # vlc-plugin-avahi: for mDNS/DNS-SD services discovery support # vlc-plugin-bluray: for Blu-ray access support # vlc-plugin-caca: for color ASCII art video output support # vlc-plugin-cddb: for CDDB access support # vlc-plugin-chromecast: for Chromecast stream out support # vlc-plugin-dca: for DTS Coherent Acoustics codec support # vlc-plugin-dvb: for DVB access, mux and demux support # vlc-plugin-dvd: for DVD access support # vlc-plugin-ffmpeg: for FFMPEG based access, codec, demux, packetizer, VDPAU, video chroma and video filter support # vlc-plugin-firewire: for FireWire device access support # vlc-plugin-fluidsynth: for FluidSynth codec support # vlc-plugin-freetype: for subtitle and on screen display text rendering support # vlc-plugin-gme: for Game Music Emulation demux support # vlc-plugin-gstreamer: for GStreamer codec support # vlc-plugin-jack: for JACK access and audio output support # vlc-plugin-kate: for kate karaoke codec support # vlc-plugin-kwallet: for kwallet keystore support # vlc-plugin-libsecret: for libsecret keystore support # vlc-plugin-lirc: for infrared remote control support # vlc-plugin-live555: for RTP/RTSP stream access support # vlc-plugin-mad: for MPEG Audio Decoder audio filter support # vlc-plugin-matroska: for Matroska demux support # vlc-plugin-mdns: for mDNS services discovery support # vlc-plugin-modplug: for MOD demux support # vlc-plugin-mpeg2: for MPEG2 codec support # vlc-plugin-mtp: for MTP device access and discovery support # vlc-plugin-musepack: for MusePack demux support # vlc-plugin-nfs: for NFS access support # vlc-plugin-notify: for notification support # vlc-plugin-quicksync: for Intel QuickSync H264/H262 codec support # vlc-plugin-samplerate: for samplerate audio filter support # vlc-plugin-sdl: for SDL codec support # vlc-plugin-sftp: for SFTP access support # vlc-plugin-smb: for SMB access support # vlc-plugin-soxr: for SoX Resampler audio filter support # vlc-plugin-srt: for SRT subtitle file support # vlc-plugin-svg: for SVG codec and text renderer support # vlc-plugin-udev: for ALSA services discovery support using udev # vlc-plugin-upnp: for UPnP services discovery support # vlc-plugin-x264: for H264/AVC encoding support # vlc-plugin-x265: for H265/HEVC encoding support # vlc-plugin-zvbi: for VBI access (also over V4L2) and codec support # Required By : None # Optional For : None # Conflicts With : vlc-plugin # Replaces : vlc-plugin # Installed Size : 40.06 MiB # Packager : David Runge <dvzrv@archlinux.org> # Build Date : Thu Jul 24 05:35:16 2025 # Install Date : Tue Aug 12 20:18:56 2025 # Install Reason : Explicitly installed # Install Script : No # Validated By : Signature このようにプラグインなどとして各種機能がVLCにおいて分割されるようになったのが、最近なのかは知らないが、linux ファームウェアも色々なんか分割してたりするので、VLC も肥大化かメンテナンスのために、なんかあったのかなと思ったり、元からだけど、今までは問題が出なかっただけなのかなと思ったり。 ...

August 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