ワテもいよいよパイソン(Python)プログラミングに挑戦中だ。
この記事ではVisual Studio2017Communityを使ってPythonのhello worldを実行する過程を紹介したい。
また、不足しているパッケージをpipと言うツールを使ってインストールする方法も紹介したい。
では、本題に入ろう。
ちなみに、冒頭の写真の自転車の女性は誰かと言うと、それは秘密だ。
Visual StudioでPythonアプリケーションを作成する
ワテの開発環境は以下の通り。
- 自作Windows10x64パソコン(詳細)
- Visual Studio 2017 Community 15.8.1
だ。
Python
Pythonアプリケーション
を選ぶ(下図)。
保存先フォルダの場所はアプリケーションの名前などは適当に決める。デフォルトでも良い。
[OK]をクリックすると下図が出る。
Pythonプロジェクトが開いた。
ソースコードは何もない状態だ。
Pythonでhello wordl!を実行する
さっそく hello world! を書いてみる。
以下の一行のパイソンコードを書き込む。
ちなみに、ワテの場合は、パイソンのコードを書くのはこれで3回目くらい。
超初心者と言っても良い。
print("Hello world!")
さっそく実行してみる。
デバッグ無し実行アイコンをクリックあるいは、ショートカットキー(Ctrl+F5)でも良い。
その実行結果。
成功だ。
ええ感じや。
なお、サンリオファンの人は、
Hello Kitty
と表示すると良いだろう。
ちなみにワテが使っているリュックがこれだ。
ほんまかいな。
Pythonエディタに行番号を表示させる
デフォルトでは、テキストエディタに行番号が無い。
ワテの場合は行番号必要派だ。
今何行目か分からないと、今どこにいるのか分からないからだ。
オプション
を開く(下図)
オプション設定画面が開くので、
Python
全般
を開く(下図)。
ここで行番号にチェックを入れて[OK]をクリックすれば完了だ。
なお、同じオプション設定画面で、下のほうにもPythonと言う項目があるが、その中の設定は以下の通り。必要なら何か設定すると良いだろう。
その結果、下図のように無事にPythonエディター環境で、行番号が表示出来た。
Pythonで現在時刻を取得して表示する
hello world! だけだと物足りないので、もう少し試した。
現在時刻を表示してみる。
from datetime import datetime datetime_now = datetime.now() print(datetime_now)
その実行結果。
ええ感じや。
ワテもかなりのレベルのPythonプログラマーかも知れない。
んなアホな!
UTC時刻で現在の時刻を取得したい
さて、現在時刻の取得は成功したのだが、UTC時刻で現在の時刻を取得したい。
「UTC(協定世界時)」とは、「世界標準時」のことだ。
パソコンの時刻設定で、
UTC+09:00
みたいな表示を良く見かけるだろう。
つまりまあ、日本の標準時(JST)は「UTC」よりも 9時間進んでいると言う意味だ。
なので、日本で現在時刻をUTCで取得すると、JST時刻と比べて9時間前となる。
で、ネット検索して、UTC時刻の取得方法を調べたら以下のPythonコードで良い事が判明。
from datetime import datetime datetime_now = datetime.now() print(datetime_now) datetime_now_utc = datetime.now(pytz.utc) print(datetime_now_utc)
早速実行してみた。
エラーしよった。
そのエラーメッセージは以下の通り。
2018-08-26 08:31:04.670439 Traceback (most recent call last): File "E:\ PythonApplication1\PythonApplication1.py", line 7, in <module> datetime_now_utc = datetime.now(pytz.utc) NameError: name 'pytz' is not defined 続行するには何かキーを押してください . . .
あかんがな。
pytz
と言うやつが見つからんと言うエラーメッセージが出ている。
まあ確かに、訳分からないままネットで見付けたコードをコピペしただけなのでエラーは当然か。
そう言う時は、Nuget Package Managerか!?
ワテの場合、C#プロジェクトではNugetを使いまくる。
今の時代、Nuget無しではプログラミングは出来ないだろう。
プログラミングの王様は誰か?
それは分からない。
pytzはタイムゾーン関連のライブラリかな
pytzで検索したら、このページが見つかった。
pytz – World Timezone Definitions for Python
Pythonで時刻を扱う場合の便利なライブラリのようだ。
まあ確かに、C#でも何でも、一般にプログラムの世界で時刻の計算は簡単なようでややこしい。
足し算、引き算など、数字なら簡単だが、日付の足し算、引き算になるといろいろとややこしい。
一ケ月前と言っても、28日、29日、30日、31日のどれなのか?
閏年の計算なんて自分でやった人もいるだろう。
4で割り切れる年は閏年、でも100の倍数は閏年では無い、でも400で割り切れる年は閏年にする
とか言う規則があった気がする。
実はワテもそんな計算をC言語でやった記憶がある。懐かしい。
まあ、兎に角、そう言う時間計算、時刻計算、日付計算、タイムゾーンを考慮した計算などの便利ライブラリは自分で作るよりも有る物をバンバン使わせてもらうほうが遥かに効率よく自分のプログラミングに専念出来る。
PythonではNugetは使えない?
さて、何かのパッケージが足りない場合には、C#ならNugetを使う。
なのでPythonでもNugetが使えるかなあと思って実行してみた(下図)。
その結果、以下のダイアログが表示されて失敗。
どうやらPythonではNugetは使えないらしい。
困った困ったこまどり姉妹!
で、必死でネットをググりまくったら、ヒントを発見。
その記事がこれだ。
How to add a package to python in Visual Studio 2017
How to add a package to python in Visual Studio 2017I just installed the new VS2017 Preview and imported a Python project. This project has many import statements but VS201...
スタックオーバーフローのサイトで見付けた。
この記事に従って、ptyzとか言う追加パッケージをインストールしてみる。
まずは、環境設定だ。
Python環境設定画面を出す
下図が開くので、パッケージの検索欄に
ptyz
と入力して検索実行。
その結果、数十個のパッケージが表示されて、
「次のコマンドを実行する:pip install pytz」
と表示されている。
pipってなんやねん?
エレキバンか!
古い。
と思ったら、今でも人気商品だった!
生体に強磁性体を貼り付けるとどんな効果があるのかはワテは知らない。
ちなみにピップエレキバンのWikipediaによると、
ピップは長年の基礎研究と臨床試験の結果より、薬事法第2条6項に基づき、厚生労働省から「管理医療機器」の許可を得て販売されている。
との事だ。へ~、知らなんだ。
さて、本題に戻ろう。
pip install pytz を実行する
この文字をクリックしたら自動でインストールが開始した。
その様子はキャプチャし忘れたのだが、雰囲気はNugetの場合と同じ感じ。
なお、インストールされたパッケージはどこに入ったのかは未確認だ。
Nugetの場合なら各プロジェクトのフォルダにインストールされる。なので、ダウンロードされたパッケージは、各プロジェクト毎に管理する。
一方、Pythonのpipの場合には、今作成中のPythonプロジェクトのフォルダには入らなかった。なので、どうやら、どこか一箇所のフォルダにインストールされて、全てのPythonプロジェクトで共通に利用するようだ。
で、pytzパッケージのインストールに成功したと言うメッセージが出たので、さっそくpytz関連パッケージのimport文を挿入してみた。
この辺りもネットのサンプルを見よう見まねなので、ワテは詳しい意味は理解していない。
from datetime import datetime datetime_now = datetime.now() print(datetime_now) from pytz import timezone # この行を追加 import pytz # この行を追加 datetime_now_utc = datetime.now(pytz.utc) print(datetime_now_utc)
で、実行してみる。
その結果、成功した。
2018-08-26 08:44:39.842635 2018-08-25 23:44:39.865628+00:00 続行するには何かキーを押してください . . .
JST時刻
UTC時刻
で日本の時刻が得られた。確かに9時間の時差がある。
ワテもかなりのレベルのPythonプログラマーに成れたかも知れない!
現在読み込んでいるパッケージを確認する
まとめ
自称、Pythonプログラミング3回目の超ノービスPyhonプログラマーのワテであるが、無事にhello world! の出力に成功した。
次に、JSTで現在時刻の取得に成功した。
次に、UTC時刻の取得を試みたが pytz パッケージが足りないと言うエラーに遭遇。
pipでpytzパッケージのインストールに成功した。
そして無事にUTC時刻の取得に成功した。
確かにJST時刻とUTC時刻の差は9時間あった。
これで自称Pyhon超ノービスプログラマーのワテも
Pythonノービスプログラマーくらいには成長出来たかも知れない。
将棋で言うとアマ30級くらいか(そんなのあるのか?)。
年内にはアマ初段くらいになりたい。
まだ先は長い。
ワテの場合、本革の爬虫類の財布は持たない。
でも人工のフェイクレザー製の奴なら持ってもいいかな。
コメント