Windows10 ProでDockerを使ってみる。Docker Desktop for Windows。【メモ】

Dockerを使ってみようと思います。

キッカケになった動画がこちら。

ちょっとやってみようかな、という気になりました。

まず、公式からDocker Desktop for Windowsを入れます。

Windows10のHyper-Vというのをオンにします。「Windowsの機能の有効化または無効化」とWindows10の検索窓で打つと、設定画面が出るはずです。そこから「Hyper-V」を探しましょう。

「Hyper-V」をオンにすると、パソコンの再起動が必要なのですが、このとき軽くエラーが出ます。

Cubaseを入れている場合は、パソコンを再起動するとSteinbergのSoft-elicenserまわりでエラーが出るので、eLicnencer Control Centerを起動して、メニューの「操作」タブから「修復」を選び、きちんと動くようにします。

そうしたら、Dockerを起動します。アプリなので、普通に起動。
Windows検索窓で「Docker」と打つと、「Docker Desktop」というのが出てきます。
それを実行。

・Dockerfileから仮想環境を作る。

Docker Desktopは実行した状態で、PowerShellを起動します。
プロジェクトの場所に行き、

docker-compose up -d

というコマンドを打つと、仮想環境が作られ、バックグラウンドでコンテナが実行されます。

参考『docker-compose run, up, build, createの違い。それぞれの役割を知る。 – Qiita』
https://qiita.com/yuta-38/items/29facbe3f236bf250651

 

以上でDockerの仮想的なLinuxによりプロジェクトが動いている状態になったので、プログラムを書いていけばOKのようです。

こちらのYouTubeの解説が分かりやすいです。

これで、Dockerで仮想環境が作成されたので、あとはその環境(コンテナと言います)を起動させて仮想環境のLinux上でコマンドを打ち、そこに何かを入れても良いでしょう。

Pythonのrequirements.txtがある場合は
pip install -r requirements.txt

でパッケージをインストールです。

ちなみにコンテナの起動や停止、コンテナ内に入るコマンドプロンプトの起動、コンテナの削除などは、Docker Desktopアプリからボタンを押すだけで可能なので、コマンドを打つ必要は無いようです。

かなり便利ですね。

・Docker環境のデータベースにWindows10のデータベース接続クライアントから接続する

Windows10のデータベース接続クライアントからDockerの仮想環境内のデータベースに接続出来ました。Heidi SQLというデータベース接続クライアントを使いましたが、特に特別な設定は不要で、仮想環境を実行中にWindows10から仮想環境のLinuxのMySQLに接続できました。
ここまで出来れば、もう何でも出来る感じがします。

こちらの記事が役に立ちました。

プログラムは通常のWindows10でコーディングをして、実行は仮想環境のLinux(Windows10で作ったdockerのフォルダがそのままLinuxのフォルダに相互反映されます。

ここが不思議なところですが、仮想Linux上でフォルダを作ったりファイルを変更してもWindows10のファイルも変更されますし、Windows10のdockerプロジェクトで同じことをしても、仮想Linux上で反映されます。

これがdockerの凄いところですね。実行だけ仮想Linuxで、編集などは既存のWindows10の環境(VS Code)などが利用できる感じです。

 

こちらの動画の、Dockerをゲームのセーブデータに例える説明がとても分かりやすかったので、参考にしてみて下さい。

Pythonで作ったスクリプトをexe化する方法。Pyinstallerで.exeファイルにしよう。【Windows10環境】

Pythonで作ったスクリプトをexe化する方法です。スクリプトをWindowsの実行ファイル(.exe)にします。

『pyhon.py→exe化→軽量化→高速化 忘備録(pyinstaller py2exe)』
https://medium.com/lsc-psd/pyhon-py-exe%E5%8C%96-%E8%BB%BD%E9%87%8F%E5%8C%96-%E9%AB%98%E9%80%9F%E5%8C%96-%E5%BF%98%E5%82%99%E9%8C%B2-pyinstaller-py2exe-4cd7c5f70c99

こちらの記事を参考にPythonで作ったスクリプトをexeファイルにしようとしました。


僕は、Pythonのバージョン管理システムはPipenv環境なので「pip」とするところはすべて「pipenv」にしています。各自読み替えて下さい。

・まずはpyinstallerをインストールする
まず

pipenv install pyinstaller

として、pyinstallerのモジュール(ライブラリ)をインストールします。

・次に、exe化したいPythonスクリプトファイル(.py)をexeに変換する

exe化したいスクリプトのファイル名をdo.pyだとすると

pyinstaller do.py --onefile

としてあげて、そのコマンドで作られたdistというフォルダの中に

do.exe

というファイルが作られれば完成です。

これで終わりです。

・コマンドプロンプトを出したくない場合は .py ではなく .pyw としてコマンドを実行する

実は、.pyをそのままexe化すると、プログラム実行時にコマンドプロンプトが起動した状態になります。
これでは気になる方がいると思いますので、その場合は元のスクリプトファイルの名前を

do.pyw

のように、拡張子を pyw にします。
そして

pyinstaller do.pyw --onefile

というコマンドを打つと、出来上がったプログラムファイルでは、コマンドプロンプトが起動しなくなります。ゲームやTkinterを使ったプログラムなどをexe化するときはこちらのやり方を使うと良いかもしれません。

以上です。


・おまけ

もし上記で、エラーが出た場合は、

コマンド実行後に

do.spec

というファイルが作られるので、そのファイルの中にある

hiddenimports=[]
という部分を

hiddenimports=['pkg_resources.py2_warn']

と変えてあげると良いそうです。
ちなみに、ここがポイントで、
'の部分は'(シングルクォート)だと思います(おそらく)。
分からなかったらこれをコピペして下さい。
キーボードでいうと、シフトキーを押しながら7のボタンを打つと出力される記号です。

そうしたら今度は

pyinstaller do.spec --onefile

と打つと、distというフォルダの中に

do.exe

という実行ファイルが出来上がるはずです。

また、場合によってはセキュリティの設定を一時的にオフにする必要もあるようです。

【5分で解決】pyinstallerでexe生成中にでるエラーコード110
http://kakedashi-xx.com:25214/index.php/2022/12/13/post-7521/

以上で動きました。

何かの参考になれば幸いです。

参考:「パソコンのキーボードの記号の読み方」
http://tabotabo.my.coocan.jp/ccc/kigo.htm

「【Python】GUI表示におけるコンソール画面(コマンドプロンプト)を非表示にする方法」
https://genchan.net/it/programming/python/4183/

Fire HDのアプリ一覧。個人的に使えるオススメアプリなども紹介。Twitter、TikTok、Instagramもあるよ。

Amazon Fire HDのアプリ一覧です。需要がありそうなので載せておきます。

使えるオススメアプリなどもざっくり解説。

・FireOSアプリストアで入手できる有名アプリ一覧

(2021年1月現在)

・Twitter
・Facebook
・Facebook Messenger
・Facebook Lite
これはFacebookの軽い版らしいです。
・TikTok
・Skype(Kindle Tablet Edition)
・Spotify
音楽アプリはSpotifyかAmazon Musicの二択になるようです。Apple MusicはもちろんAWAもありません。
・Evernote
・Google Drive
・TuneIn Radio
・ATOK(日本語入力システム)有料
・Microsoft 翻訳
・OneDrive
・Microsoft Outlook
・DropBox
・ABEMA
・YouTube (FireOS版。バックグラウンド 続きを読む

Pythonでwavオーディオファイルをミックスする方法。2つの音声データを合成する。【Windows環境・pydubを使用】

wavオーディオファイルをPythonでミックスする方法です。2つの音声データの合成方法。

Pythonでオーディオミキシングをする方法あるのかな~と思っていたら、ありました。

pydubというPythonの音声処理用ライブラリを使います。

こちらが参考にした記事。

「How do I mix audio files using python?」
https://stackoverflow.com/questions/7629873/how-do-i-mix-audio-files-using-python

・やり方。まずは仮想環境を構築。

まず、僕の場合はpipenvで仮想環境を作成しました。
pipenv --python3.8

仮想環境を作成したら
.venv/Scripts/activate
でアクティベートさせましょう。

pipenvについては 続きを読む

DjangoでオープンソースのECサイトを作る方法。Saleor(https://saleor.io)やOscar(django-oscar)を使ってみよう。

DjangoでECサイト作りをしたいと考えていたところに、YouTubeで良さげな動画を見つけました。

「Python Django e-Commerce Tutorial 2020 – for Beginners」

とても簡潔に説明がされています。
ローカル環境で動くところまで。

上の動画のECサイトの実装ではSaleorhttps://saleor.io/)というDjangoのライブラリを使っています。

デモサイト:
https://demo.saleor.io/

デモサイト管理画面
https://pwa.saleor.io/dashboard/

このライブラリはオープンソースですが、サーバーをSaleorの用意するクラウドで動かしたい場合は別途月々の料金が必要なようです。スタンダードプランで月に約7万6千円ほど(695ドル/月)。ちょっと高すぎる。
ただ、個人で普通に使いたいだけならフリープラン(自分でサーバーなどを用意する)でいけそうです。
フリープランでもカスタマイズや商用利用が可能です。

Djangoは最初からログイン/ログアウト(認証)やアクセス制限などの
「管理権限系の処理」と、その管理画面が実装されているので、
Djangoを入れるだけでユーザーとスーパーユーザー(管理人)を分けて処理を行うことなどが出来ます。

(ちなみに上記デモサイトでも分かるようにSaleorでは管理画面はDjangoの管理画面ではなくSaleorの管理画面が用意されています。)

___________________
※2020年10月追記
:アクセスが増えていたので追記です。
Saleorを実際に使ってみたところ、最新バージョンではDocker(仮想コンテナ)が必須になっていました。Dockerの知識が必要です。ご注意ください。
_______(追記おわり)_____

また、ちょっと調べてみたところ、Saleorとは別に、Oscar(https://github.com/django-oscar/django-oscar)というEコマースのライブラリもあるようです。

『コピペで始めるDjango Oscor – Qiita』
https://qiita.com/shinriyo/items/a59412f4569171e41606

『django oscar 簡易チュートリアル – Qiita』
https://qiita.com/d0d0npa/items/4a4cc9914feebf60bbc0

Cartridgeというライブラリも発見。
https://github.com/stephenmcd/cartridge

このようなストア系のライブラリがあれば、車輪の再発明のような事をしなくても良いのですね。
選択肢が広がります。


話は別ですが、個人的には2020年5月現在でオリジナルのECサイトを作る一番簡単な方法は、WordPressにWooCommerceのプラグインを入れてStripe決済にすることだと思います。
Stripeは維持費なし、手数料が販売金額の3.6%のみ。凄いのは振込手数料も0円です。

限定公開URLやパスワードをつけることが出来るのでかなり良いです。
海外から作曲の依頼があったときにデータの受け渡しやライセンスの販売に使えます。
購入後のダウンロード期限(日数)の設定まで出来ます。
ゲスト購入(アカウントを作らずにE-Mailのみでの購入)も可能。

※ちなみに、レンタルサーバーで運用する場合は「国外IPアドレスフィルタ」の「アクセス制限設定」を無効にして国外のウェブアクセスを許可しないと、購入後にユーザーに提供するダウンロードリンクが利かないので、海外販売を視野に入れる場合はこの設定は無効にしましょう。

ただ、これだと商品表示の方法や音楽プレイヤーの表示・仕様の自由なカスタマイズなど、自分の思っているような事が微妙に出来ないんですよね。

ということで色々調べています。


・Djangoで1からECサイトを作る方法

あとは、YouTuberのDennis Ivyという人がDjango + PayPalのECサイトの作り方を解説している動画があります。この人の英語はとても聞き取りやすく明瞭なのでオススメです。

Code With Steps
https://codewithsteps.herokuapp.com/

上記サイトで、これらの動画に沿いながらコードを実装できるように丁寧に説明しています。
(サイトの方は有料。買い切りです。12.49ドルでした。)

Djangoでのショッピングカート実装の仕組みなどを学ぶには十分すぎる内容だと思います。

僕はこのサイトで勉強中です。Bootstrapのバージョンだけ4なので注意ですね。
(2021年5月5日にBootstrap5が発表されたので若干古くなってしまいました。)


以上、メモ用に書き残しておきます。