mieki256's diary



2020/03/02(月) [n年前の日記]

#1 [python] デフォルトで使うPythonのバージョンを3.7にした

今まで、手元のWindows10 (1909 x64)機では、デフォルトで Python 2.7 (2.7.17, 32bit) を使うように環境変数 PATH で指定していたのだけど。Python 2.7 はサポート終了していることだし、さすがにそろそろ Python 3 へと移行せねば、という気分になってきて。

てなわけで、Python 3.7.6 32bit版をインストールして、PATH ではそちらを指定するようにしてみたり。

しかし、大丈夫かな…。何か日常的に使ってる、Python 2.7用に書いたスクリプトが無ければいいけど…どうだったかな…。まあ、そのうち何か不具合に遭遇したら、その時対応しよう…。

py.exeの動作がおかしい。 :

Windows + Python 2.x 環境に Python 3 をインストールすると、py.exe というランチャープログラムが C:\Windows\ 以下にインストールされて、
python hoge.py
と打ち込む代わりに、
py hoge.py
py -2 hoge.py
py -3 hoge.py
と打てるようになって、Pythonのバージョンを切り替えて使えるようになるのだけれど。

手元の環境で試してみたら、妙な結果に…。
> py --version
Python 3.7.5

> py -3 --version
Python 3.7.5

> py -2 --version
Python 2.7.17

> py -VV
Python 3.7.5 (tags/v3.7.5:5c02a39a0b, Oct 15 2019, 00:11:34) [MSC v.1916 64 bit (AMD64)]

> py -3 -VV
Python 3.7.5 (tags/v3.7.5:5c02a39a0b, Oct 15 2019, 00:11:34) [MSC v.1916 64 bit (AMD64)]

> py -2 -VV
Python 2.7.17
「py -2」を指定した場合は問題無し。Python 2.7.17 32bit版をインストールしてあるから。

しかし、「py」「py -3」を指定した時の結果がおかしい。Python 3.7.6 32bit版をインストールしてあるはずなのに、Python 3.7.5 64bit版が入ってると py.exe が言ってくる。その 3.7.5 64bit って一体どこにインストールされているんだ…。

py --help を眺めたら、利用可能な Pythonの一覧を表示してくれる機能があると知った。「--list」「--list-paths」を指定すればいいらしい。(「-0」「-0p」を指定してもよい。)
> py --list
Installed Pythons found by py Launcher for Windows
 -3.7-64 *
 -3.7-32
 -2.7-32
 -2.7-32
 -2.6-32
 -2.5-32
 -2.4-32

> py --list-paths
Installed Pythons found by py Launcher for Windows
 -3.7-64        "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\python.exe" *
 -3.7-32        C:\Python\Python37-32\python.exe
 -2.7-32        C:\Python\Python27\python.exe
 -2.7-32        D:\Dev\Panda3D-1.9.4\python\python.exe
 -2.6-32        C:\Python\Python26\python.exe
 -2.5-32        C:\Python\Python25\python.exe
 -2.4-32        C:\Python\Python24\python.exe
謎が解けた。「py -3」を指定すると、Visual Studio関係でインストールされてる Python 3.7.5 64bit版が選ばれてしまうのだな…。

つまり、自分の環境で、Python 3.7.6 32bit版を使いたい場合…。
> py -3.7-32 -VV
Python 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 18 2019, 23:46:00) [MSC v.1916 32 bit (Intel)]
「py -3.7-32」を指定しないといかんらしい。

一々指定するのは面倒だな…。どこかで事前に指定できないのか…。

環境変数 PY_PYTHON を指定することで、py.exe がデフォルトで使う Python のバージョンを指定できるらしい。ユーザー側の環境変数として指定してみる。
> set | grep PY_PYTHON
PY_PYTHON=3.7-32
> py -VV
Python 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 18 2019, 23:46:00) [MSC v.1916 32 bit (Intel)]

> py -0p
Installed Pythons found by py Launcher for Windows
 -3.7-64        "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\python.exe"
 -3.7-32        C:\Python\Python37-32\python.exe *
 -2.7-32        C:\Python\Python27\python.exe
 -2.7-32        D:\Dev\Panda3D-1.9.4\python\python.exe
 -2.6-32        C:\Python\Python26\python.exe
 -2.5-32        C:\Python\Python25\python.exe
 -2.4-32        C:\Python\Python24\python.exe
これで、デフォルトで Python 3.7.6 32bit版が使われるようになった。

外部ライブラリを呼び出せない。 :

PySimpleGUI のサンプルスクリプトを動かそうとしたら…。
> py 03_sample_pysimplegui.py
I am Python 3
Traceback (most recent call last):
  File "03_sample_pysimplegui.py", line 32, in <module>
    import PySimpleGUI as sg
ModuleNotFoundError: No module named 'PySimpleGUI'
pipでインストールしたモジュールが読み込まれない。

「py -3.7-32 03_sample_pysimplegui.py」と指定したところ動いてくれた。

調べたところ、03_sample_pysimplegui.py の _シバン行 に、
#!python3
と書いてしまっていた。おそらく…。
  1. シバン行の指定を py.exe が読み取って、「py -3」として動かそうとする。
  2. Visual Studio側の Python を呼び出してしまう。
  3. そちらには PySimpleGUI なんて入ってないからエラーを出す。
そういう状況だろうなと。

シバン行を以下に変更。
#!python
これで、「py 03_sample_pysimplegui.py」で動くようになった。

まあ、素直に、「python 03_sample_pysimplegui.py」と打っておけばいいのかもしれない。

#2 [anime] 舞台の狭さ、舞台の広さ

思考メモ。

「地縛少年 花子くん」というTVアニメを眺めていて、学校で幽霊が出てくる云々の作品は一定の需要があるなと。思い返せば、自分も学生時代にそういう設定の漫画作品を好んで読んでた時期があるし。オカルトっぽい設定に格別興味が湧いてしまう年頃って誰にでもあるわけで、だから定番ジャンルとして存続してる、みたいな。

そこでふと、なんとなく。「マギレコ」アニメ版も、学校を舞台として限定している設定だったら、印象が随分変わっていたかもしれないなと。少なくとも、「まどマギ」の続編と勘違いされたまま視聴されちゃって文句を言われる状況ぐらいは避けられたかもしれない。タイトルに「外伝」とつけただけでは、まだ足りなかったというか…。

まあ、「マギレコ」も、街一つ分に舞台を限定してるのだけど…。街一つは、ちょっと広過ぎたのかもしれないなと。 *1

考えてみれば、「進撃中学校」「異世界かるてっと」も、学校を舞台に、てな限定の仕方をしているなと。「進撃中学校」を見て「進撃の巨人」の続編と思う人は居ないし、「異世界かるてっと」を見て各作品のガチなコラボ作品と思う人も居ないわけで。

つまり、作中キャラが活躍する舞台をグーンと狭く限定することで、外伝っぽさが増す、明らかにスピンオフ作品と分かる、そういう面があるのだ、と言えそうだなと。

そういえば、「カリ城」もそうか…。制作スケジュールの問題でそれほどスケールの大きい話は作れないだろう、じゃあどうする、となった際に、城一つに舞台を限定することで完成まで持っていけるのではないか、という理由でああいう舞台になったらしいけど。もちろん、宮崎駿監督は、キャラ造形自体は本物のルパンを作ってるつもりだったろうけど、作品の位置付けは、劇場版第1作ほどガチではなく、若干外伝寄りと言うか、肩の力を抜いて気楽に観賞できる冒険活劇を、という意識が多少はあったのかもしれない、故にあの舞台設定だったのだ、と邪推してみたりもして。

広くするのもアリかも。 :

逆に、舞台を広げてしまうことでも、外伝らしさが増す可能性はないか。

「スタートゥインクルプリキュア」「宇宙戦隊キュウレンジャー」のように、宇宙の各惑星を巡る話にしちゃうのもアリかもなと。例えば「マギレコ」も、QBがちょっかいを出してきた各惑星を「999」的に旅する展開だったら、誰も続編とは思わないだろう…。あーこれは外伝ですね、全然別物ですね、と思ってくれるだろう…。

地球上のあちこちでもいいよな。今日はエジプトに来ました、今日はNYに来ました、とか。タイムボカンかよ。みたいな。

タイムボカンか…。時代を超越しちゃうのもアリかもしれん。今日は江戸時代に来ました。今日は幕末に来ました。とか。坂本龍馬の隣に「まどマギ」っぽい見た目の魔法少女が立ってたら、そりゃ誰だって続編とは思わないはず。明らかに「外伝」だよな…。

と、ここまで書いて気がついた。ああ、そうか。Fateシリーズがやってるのって、ソレかあ…。

外伝で一儲けしようぜ、となった時、舞台を狭く狭くしていくことでもソレは成立するけれど。逆に、笑っちゃうレベルでアホみたいに風呂敷広げちまえ! という手もあるのだなと…。そして、実際ヒットしてる。

外伝と言っても、色々なやり方があるんだな…。

*1: 舞台が広ければ色んな話を作れる余地が生まれるだろうし、複数のシナリオライターさんが参加して、個別に各エピソードを担当する場合は便利なのかもしれない。もしかすると、後にイベントを増やしていく展開が控えてそうな、ゲームと言うメディア上では、美味しい設定だったりするのかも。

以上、1 日分です。

過去ログ表示

Prev - 2020/03 - Next
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project