Intro to Python
環境
最終更新:
introtopython
目次
コマンドラインでバージョンを確認する
- Vオプションを使う。-VVとすると(when given twice, print more information about the build)、より詳細な情報を表示する。
>python -V
Python 3.9.16
>python -VV
Python 3.9.16 (main, Mar 8 2023, 10:39:24) [MSC v.1916 64 bit (AMD64)]
対話型実行環境でバージョンを確認する
sysモジュールを利用する
>>> import sys
>>> print(sys.version)
3.9.16 (main, Mar 8 2023, 10:39:24) [MSC v.1916 64 bit (AMD64)]
エラーメッセージ「UnicodeDecodeError: 'cp932' codec can't decode byte 0x○ in position ○: illegal multibyte sequence」
Windowsの対話型実行環境で、あらかじめ作成したスクリプトを読み込んで実行しようとして、このようなエラーメッセージができることがある。これは、ファイルの文字コードを正しく指定していないことが原因。Windows版はShift_JISであることを前提に動作しているため、UTF-8で保存されたファイルとそのまま読み込もうとすると、このエラーメッセージが表示される。
以下は、以下の2行からなるスクリプトを作成してShift_JISでprintsjis.py、UTF-8でprintutf-8.pyとして保存しておく。
print('セナディア役の鈴木みのりさん、かわいい。')
print('リフ役の瀬戸麻沙美さん、かわいい。')
対話型実行環境を起動し、それぞれのスクリプトを読み込んで実行する。ファイルの文字コードを指定しないとShift_JISとして読み込むため、encodingオプションを使用して文字コードを指定して読み込んでいる。
>python
Python 3.11.7 | packaged by Anaconda, Inc. | (main, Dec 15 2023, 18:05:47) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exec(open('printsjis.py').read())
セナディア役の鈴木みのりさん、かわいい。
リフ役の瀬戸麻沙美さん、かわいい。
>>> exec(open('printutf-8.py').read())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'cp932' codec can't decode byte 0x○ in position ○: illegal multibyte sequence
>>> exec(open('printutf-8.py', encoding = 'UTF-8').read())
セナディア役の鈴木みのりさん、かわいい。
リフ役の瀬戸麻沙美さん、かわいい。
環境変数を取得する
osモジュールのenvironオブジェクトを参照する。以下はWindows環境下で行った例。Windowsの仕様として、大文字小文字は区別しない。存在しない環境変数を指定した場合はNoneが返される。
>>> import os
>>> print(os.environ.get('HOMEDRIVE'))
C:
>>> print(os.environ.get('WINDIR'))
C:\Windows
>>> print(os.environ.get('windir'))
C:\Windows
>>> print(os.environ.get('windows'))
None