無洗米

プログラム書く

【Python】動画アップロード【Youtube】【ちょいネタ】

風邪をひいてしまってやっと治ってきました。
冬は体調を崩しやすいので気をつけていきたいですね

今回はPythonyoutubeに動画をアップするスクリプトの紹介です。
私はユーチューバーになる気はないので試験的にアップしただけですがここでその動画公開する予定はなし笑

公式に動画をアップするPythonスクリプトを公開しています。
認証キーをダウンロードしてそれをスクリプト内で参照しアップする動画を用意すれば丸コピでできます。
developers.google.com


動画作成ですが、画像を元に作成する方法がありました。
qiita.com

画像にテキストを乗せる方法。
d.hatena.ne.jp

以上のようなのとスクレイピングやwebAPIを使って情報を取得していろいろ加工すればそれなりの動画が作成できるのかと思います。
イデア次第ですね!

【Python】PyInstallerでPandasを利用するとエラーが出る話【ちょいネタ】

お久しぶりです。
しばらく書いてなかったorz

今回は、PyInstallerというPythonスクリプトをexe化してくれるライブラリで躓いたので、その解決方法を書こうかと思います。

Pandasというデータ分析で使うライブラリがあるのですが、それを使った処理をexe化して、実行してしばらくするとエラーが発生します。

その時のエラーの一部です。途中割愛してます。
(エラーが一瞬コマンドプロンプトで出るんだけどすぐ消えちゃうので、出た瞬間にキャプチャして、その画像をGoogleドライブでアップしGoogleドキュメントにすると文字起こししてくれるので便利)

Traceback (most recent call last):
File "site-packages pandas¥_init__.py", line 26, in <module> File "割愛", line 631, in exec module
exec(bytecode, module. _dict) File "site-packages\pandas¥ libs¥_init__.py", line 4, in <module> File "割愛", line 714, in load_module
module = loader . load_module(fullname) File "pandas¥_libs¥tslibs conversion.pxd”, line 11, in init pandas. _libs.tslib
File "割愛", line 714, in load_module
module = loader. Toad_module(fullname) File "pandas¥ Libs¥tslibs conversion.pyx", line 1, in init pandas. Libs.tslibs.conversion ModuleNotFoundError: No module named 'pandas. _libs.tslibs.np_datetime During handling of the above exception, another exception occurred:
per moduline 714, in bashišappdatax loca poti line 11, i
Traceback (most recent call last): File "割愛", line 7, in <module>

解決方法がわかりましたのでメモっときます。

PyInstallerのインストールは

pip install pyinstaller

pip3 install pyinstaller


エラーを回避するには

C:\Users\[ユーザー名]\AppData\Local\Programs\Python\Python36\Lib\site-packages\PyInstaller\hooks


virtualenvの仮想環境を使用している場合は

[プロジェクト名]\Lib\site-packages\PyInstaller\hooks

でhook-pandas.pyがないので作成。中身は

hiddenimports = ['pandas._libs.tslibs.timedeltas', 'pandas._libs.tslibs.np_datetime', 'pandas._libs.tslibs.nattype', 'pandas._libs.skiplist']

それで

pyinstaller [Pythonファイル名] --onefile 

と実行するとエラーが発生しないexeができるはず。

注意:今ところPython3.7だとできないので3.6以前のバージョンで実行してください。

参考URL
github.com

【ラノゲツクールmv】メッセーボックスのタイトルに戻る処理を変える方法【ちょいネタ】

夏バテしてます。
デフォルトのスクリプトだとゲーム中にメッセージボックスのタイトルボタンを押すとLayout_Titileで書かれているタイトルメニューになってしまい、
シーンでタイトル画面を作った人にしてみては、全然違うタイトル画面になってしまい。バグになってしまいます。
ということで今回は指定したシーンに行く方法をメモ。

まずシーンプロパティでUIDを控えておく。
f:id:test_okome:20180713215709j:plain

その後、スクリプトのTemplate -> Template_MessageboxMenuで、

f:id:test_okome:20180713220132j:plain

"acceptActions": [{"name":"exitGame"},{"name": "switchLayout", "params": { "name": "titleLayout" } }] , 

 "acceptActions": [{"name":"exitGame"},{"name": "switchGameScene", "params": { "uid": "さっき控えたUID" } }] , 

にすればそのシーンに飛ぶ。
画像のUIDはイントロシーンにしました。
参考サイト
forum.tkool.jp

【ラノゲツクールmv】ESCキーを押すとゲームが終了する機能をOFFにする方法【ちょいネタ】

PCゲームだとESCキーを押すとゲームが終了するのは結構定番だったりするけど、
間違って押してセーブしてなくて後悔という状況にさせるのは嫌なので、
その機能自体を無効しておくようにする方法。メモ。

スクリプトで Componenents -> Scene -> Component_GameSceneBehavior
f:id:test_okome:20180707202224p:plain

そのファイルで

    updateQuitShortcut: ->
        # if Input.trigger(Input.KEY_ESCAPE)
        # gs.Application.exit()                     

最後の二行を#でコメントアウトすると無効にできる。
別のキーに設定したい場合はInput.KEY_ESCAPEを変更すればいけると思う。

【ラノゲツクールmv】ゲームを終了するスクリプト【ちょいネタ】

ゲームを終了するコマンドが見当たらないのでスクリプト内を見ていろいろ実行をして試してみたら
以下のコードを実行すればゲームを終了できることがわかったので一行だけだけどメモ

まずコマンド一覧でスクリプトをべた書きしてスクリプトを実行するコマンドがあるのでそれを選択して
f:id:test_okome:20180706234959p:plain

実行したいところに
f:id:test_okome:20180706234140p:plain

Application.exit()

と書くと終了できる
ラノゲツクールmvにはスクリプト編集ができるので
そこのManagers -> GameManagerに書いてあった
スクリプトには検索機能があるので「quit」で検索してひたすらコードを追ってました

【React Native】nodeライブラリをインストールして使用

ネットで公開しているnodeライブラリを取り込めるみたいなのでそこらへんの話
使わせてもらったのはQRコード系のライブラリ

GitHub - cssivision/react-native-qrcode: a minimalist qrcode component for react-native

$ npm install react-native-qrcode --save
$ react-native link react-native-qrcode

シミュレータやターミナル起動しながらインストールしてビルドしてエラーになってて
あれー?おかしいなぁってずっと考えてました
ちゃんと両方落としてからインストールしてビルドしないとエラー出て先に進めない様です
当たり前だけどね

コードは上記のとこで公開してるのでそれにちょっと自分でアレンジしたくらい
なので実行結果の画像だけ公開

f:id:test_okome:20180625000705p:plain