「環境」の編集履歴(バックアップ)一覧に戻る
環境 - (2025/03/06 (木) 23:10:09) のソース
** 目次 #contents ** コマンドラインでバージョンを確認する -Vオプションを使う。-VVとすると(when given twice, print more information about the build)、より詳細な情報を表示する。 #highlight(){{ >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モジュールを利用する #highlight(){{ >>> 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」 [#zbd83b4c] Windowsの対話型実行環境で、あらかじめ作成したスクリプトを読み込んで実行しようとして、このようなエラーメッセージができることがある。これは、ファイルの文字コードを正しく指定していないことが原因。Windows版はShift_JISであることを前提に動作しているため、UTF-8で保存されたファイルとそのまま読み込もうとすると、このエラーメッセージが表示される。 以下は、以下の2行からなるスクリプトを作成してShift_JISでprintsjis.py、UTF-8でprintutf-8.pyとして保存しておく。 #highlight(){{ print('セナディア役の鈴木みのりさん、かわいい。') print('リフ役の瀬戸麻沙美さん、かわいい。') }} 対話型実行環境を起動し、それぞれのスクリプトを読み込んで実行する。ファイルの文字コードを指定しないとShift_JISとして読み込むため、encodingオプションを使用して文字コードを指定して読み込んでいる。 #highlight(){{ >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が返される。 #highlight(){{ >>> 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 }}