hotch-potch, Note to self

いろいろ作業記録

pyinstallerで生成した実行ファイルが動かない

1.はじめに

pyinstallerで実行ファイルをエラーなく生成完了したのに、生成したexeファイルを実行すると何もせず(エラーも出ず)そのまま終了してしまう現象がありました。 (pythonの引数にpyファイルを与えて実行することは当然できるものとします)

特定の環境で起きるのかどうかよくわからないですが、とりあえず処置方法を残します。

実行環境

  • WindowsPython Ver.3.7
  • pip経由でインストールしたpyinstaller Ver.4.7
  • envで仮想環境を作っている
  • __main__を含むファイル(ここではHoge.py)から、別のpyファイルのクラスを呼び出して実行している1
> ...\env\Scripts\python.exe --version
Python 3.7.8
> ...\env\Scripts\pyinstaller.exe --version
4.7

状況

>...\env\Scripts\pyinstaller.exe --onefile --clean Hoge.py
89 INFO: PyInstaller: 4.7
89 INFO: Python: 3.7.8
89 INFO: Platform: Windows-10-10.0.19041-SP0
...
8398 INFO: Updating resource type 24 name 1 language 0
8421 INFO: Appending PKG archive to EXE
10114 INFO: Building EXE from EXE-00.toc completed successfully.

実行します。

> dist\Hoge.exe

>

何も処理せず空白行だけ出てきて、終了してしまいます。

2.結論

pyinstaller コマンドに与える引数のファイル名を、すべて小文字(Hoge.py→hoge.py)にする。

> ...\env\Scripts\pyinstaller.exe --onefile --clean hoge.py
89 INFO: PyInstaller: 4.7
89 INFO: Python: 3.7.8
89 INFO: Platform: Windows-10-10.0.19041-SP0
...
8398 INFO: Updating resource type 24 name 1 language 0
8421 INFO: Appending PKG archive to EXE
10114 INFO: Building EXE from EXE-00.toc completed successfully.

実行します。

> dist\hoge.exe
...(処理が進む)
>

hoge.py自体のファイル名の先頭は、大文字のままで構いません。 pyinstallerに与える引数を小文字にするだけで、結果が変わります。

3.まとめ

対処療法的な結論ですが、ご参考になれば幸いです。 (なんでこんなことに・・・)


  1. これが何か影響しているのかなぁ・・・

macOSでPostgreSQLのコンテナが立ち上がらない

1.はじめに

macのDocker上で、PostgreSQLのコンテナを立ち上げ、かつdetaディレクトリを永続化(-vオプションでホスト側のディレクトリにマウント)した際に、起動失敗する例があったので、覚書。

(Ununtu Linux 20.04ではこの現象は起きない。Windows版は未確認)

2.結論

dockerを再起動して、すぐにdocker-compose upすること。

(-v で接続した、ホスト側(macOS)のディレクトリのパーミッションが、コンテナ内(PostgreSQL)からうまく制御できてなさそう・・・)

続きを読む

docker buildが特定のディレクトリで失敗

1.はじめに

macの仮想ドライブを作成した際に、特定のディレクトリで、Dockerfileをdocker buildできない現象があったので、覚え書き。

2.結論

macの仮想ドライブのルートディレクトリでは、docker buildができない。

一つ下にディレクトリを用意して、その中で実行可能。

続きを読む

pip自体のアップデートで「アクセスが拒否」されたときの対応

1.はじめに

Visual Studio 2019と一緒にインストールしたPythonを使ってます。 久々にパッケージをアップデートしてみましたが、pip自体のアップデートに限って失敗してしまったので、その処置例を残します。

続きを読む

Hyper-V の有効・無効化切り替えコマンド

1.はじめに

Virtual BoxとWSL2を使い分けている関係で、簡単にHyper-Vの切替をする方法をまとめます。 ここでは、コマンドプロンプトの操作だけで切替をします。

2.操作方法

(1)

コマンドプロンプトを「管理者権限で実行」

(2)有効・無効状態の確認

bcdedit /enum | find "hypervisorlaunchtype"

(3)有効化

bcdedit /set hypervisorlaunchtype auto
shutdown.exe /r /t 0

(4)無効化

bcdedit /set hypervisorlaunchtype off
shutdown.exe /r /t 0

参考資料

Hyper-VのON・OFFを簡単に自動化すっぞ!! - Qiita

https://az764295.vo.msecnd.net/stable/2b9aebd5354a3629c3aba0a5f5df49f43d6689f8/VSCodeUserSetup-x64-1.54.3.exe

Docker GPIO制御とユーザマッピング(失敗)

1.はじめに

Dockerコンテナから、以下を同時に対応しようとして失敗した例です。

こんなことする人はあまり居ないと思うので、自分用の覚え書きとして残します。

続きを読む