Intro to Python
環境
最終更新:
introtopython
目次
対話型実行環境でバージョンを確認する
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'))
NonePythonランチャーを使う
Pythonランチャーとは、Windowsでバージョンの異なるPythonを使い分けるためのコマンド。コマンド名は「py」。2026年3月現在の最新版(3.14)では、Pythonをインストールすると一緒にインストールされる。
>py --help
Python Launcher for Windows Version 3.14.3
usage:
py [launcher-args] [python-args] [script [script-args]]
(以下、表示省略)デフォルトでは、その環境にインストールされている最新バージョンのPythonが起動する。現在、インストールされているバージョンをすべて表示するには、--listオプションを使う。
>py -V
Python 3.14.3
>py --list
-V:3.14 * Python 3.14 (64-bit)