増補改訂版を読まれている方へ ############################################ Pythonスタートブック(増補改訂版)をご愛読いただきありがとうございます。このページでは、書籍の中でわかりにくい箇所などを中心に、理解を助ける情報を提供していく予定です。 サンプルデータと正誤表 ******************************************************************************** `技術評論社のWebページ `_ も参考にしてください。 最後のページでご確認ください ******************************************************************************** 本の最後のページ(奥付)で、「第2版 第○刷」となっている部分で、まず刷数をご確認ください。以下の情報のなかで記述の修正に関するものは、刷数によっては取り込まれている箇所もあります。その場合は刷数を追記しています。 Pythonのインストールと起動 ******************************************************************************** `Python Software Foundation `_ が配布する標準のPythonを利用することをおすすめします。状況の変化により、P23ではじめてPythonを起動するとき、pythonコマンドではうまくいかないことが多くなってきました。 Pythonを起動するとき、Windowsではpyコマンド、macOSではpython3コマンドを利用してください。本書の全編を通じて、pythonコマンドを実行するところを、以下のようの読み替えます。 Windowsの場合 .. code-block:: shell python → py macOSの場合 .. code-block:: shell python → python3 10章の内容 ******************************************************************************** この章では、簡単なWebアプリケーションを実装するために、標準ライブラリからtelnetlibやcgiを利用していますが、これらのモジュールがPython3.13から提供されなくなりました。このため、この章のコードを実行するためには、Python3.12以前のバージョンが必要です。(Python3.12ではこれらのモジュールが削除されるという警告がでるため、3.11の利用がおすすめです。) OSに複数のバージョンのPythonをインストールすることに問題はありません。起動するバージョンを切り替えるには、以下のようなコマンドを使います。 Windowsの場合pyコマンドの引数で指定 .. code-block:: shell py -3.11 macOSの場合はコマンドでバージョンを指定 .. code-block:: shell python3.11 macOSを利用している場合は、以下で説明するシェバン行の書き換えも必要です。 macOSをご利用の方へ ******************************************************************************** macOSバージョン12.3以降ではpythonコマンドで起動するpython2.xが廃止されました。それ以前のバージョンでは、pythonコマンドであらかじめインストールされたpython2.xが起動します。 #!からはじまるスクリプトファイルの1行目をシェバン行といいます。そのスクリプトをどの環境で動かすかを指定するものです。 .. code-block:: shell #!/usr/bin/env python とするとどのバージョンのPythonを利用するのかわかりにくいので、以下のようにPythonのバージョンを指定するのがよいです。 .. code-block:: shell #!/usr/bin/env python3.11 Windows環境をご利用の方へ ******************************************************************************** 増補改訂版では、Python3.6を利用しています。Python3.5と3.6で、Windows環境において、標準入出力での文字列のエンコードの扱いが変わっていることもあり、3.6以上のバージョンを利用しないと、日本語を扱う箇所で不具合がでる可能性があります。出来るだけ3.6以上のバージョンを使うようにして下さい。 Anacondaを使ってPythonの環境をインストールした場合、コマンドプロンプトやPowerShellから実行したPythonで、タブキーの入力がエラーになる不具合が報告されています。これは、for文やif文などでインデントをする際に致命的な問題になります。1つのインデントに対して、スペース4つを入力するというのがもっとも簡単な解決策です。標準のPythonをインストールし直すという方法もあります。ただどちらもすこし面倒なので、Jupyter Notebookの利用をおすすめします。Jupyter Notebookの簡単な使い方については、筆者が書いた `別の本のサポートページ `_ にも情報があります。この本は、大学の教科書シリーズとして書かれているので、「である調」が使われています。今後、Anacondaがバージョンアップすることによって、この問題が解決する可能性はあると考えられます。 10章「Webアプリケーションを作る」、特にP262からはじまるCGIを使ったコードがうまく動かないことがあります。ホームディレクトリに日本語を含むマルチバイト文字が使われていると、エラーになってしまうことがわかっています。これは、このCGIの例だけではなく、さまざまなエラーの原因になるのでホームディレクトリのパスは半角の英数字だけを使ったほうがよいでしょう。ただ、Windows環境において、CGIの実行がうまくいかない問題は、さまざまな原因が考えられ、すべて解決できていません。明らかな原因と対策が判明した場合は、このサポートページに追記していきます。もしエラーが出てしまって困っている場合は、お気軽にご連絡ください。解決のお手伝いをいたしますが、原因不明となる可能性もありますので、あらかじめご了承ください。 P20「補足」の下、図5の左の注意について(第4刷からは追記されています)。 「注意」WindowsでAnacondaのPythonを使っている場合は、スタートメニューのAnaconda3の中から、Anaconda Powershell Promptを起動してください。 これは、コマンドプロンプトやPowerShellから直接AnacondaのPythonを起動したときに、一部の環境で仮想環境のactivateを要求される不具合があるためです。普通に起動してうまく行く場合はそのままで構いませんが、どちらにしてもタブキーの入力でエラーが起きてしまうので、for文をはじめて実行するP119以降ではJupyter Notebookの利用を検討してください。 P260 PowerShellを使っている場合(第2刷以降では修正されています)。 260ページでの一番下でWindowsの場合となっている部分は、PowerShellを使っている場合は :: .. code-block:: shell > .\my_first_cgi.py とする必要があります。 その他の細かな修正 ******************************************************************************** P237のDice()はDiceでかまいません。第4刷以降では修正されています。 P337、the Python Package IndexのURLが、`https://pypi.org/ `_ へ変更になっています。第2刷以降では修正されています。