Python 3 エンジニア認定実践試験対策1. Pythonの環境

投稿日:

更新日:

カテゴリ:

えええ~Pythonって、蛇の名前だったの?!pyhonで検索したら蛇の画像が出てきました。

macOSの辞書でpythonを検索したら、「ニシキヘビ」出てきました。今更ながら、そういう意味だと知りました。

さらに、pythonの意味の中に、「ピュトン【ApolloがDelphiで退治した大ヘビ】」とあります。

えええ〜Delphiって蛇退治の道具だったりして?!

なんでDelphiに反応したかというと、私が最初に習ったプログラミング言語はPascalでした。Delphi自体は使ったことはありませんが、Object Pascalと言ったりして文法的なところは同じであるはずです。

そのDelphiというのは、そんなところから来た名前だったりするのかな?と思ったら、ちょっと意外というところになります。

いきなり本筋から外れましたね。。雑談はそのぐらいにしておきましょう。

Pythonの環境

公式の認定テキストである「Python実践レシピ」(技術評論社)を順にやっていきます。

テキストでは、いきなりPythonパッケージ管理ツールpipの導入から始まってますが、Python入ってましたっけ?

当方の環境はmacOS Ventura (v13.4)です。確認したところ、awscliを使うには、Pythonが必要だったみたいで、既に入れてます。

Pythonはまだインストールされてないのであれば、私はHomebrewを使ってますが、次のコマンドで行けるはずです。

brew install python@3.11

インストールできましたら、次のでPythonのバージョンを確認できるはずです。

% python3 -V
Python 3.11.4

pipはPythonをインストールしたらついてくるものですかね?!

見た感じ、pipコマンドも次のように確認できます。

% pip3 -V
pip 23.2.1 from /usr/local/lib/python3.11/site-packages/pip (python 3.11)

これで、とりあえず土俵に立ったと思います。

要点

テキストのPythonの環境の内容について自分なりにまとめた要点は以下です。
ご参考になれば嬉しいです。

エラーと対処法

私がテキスト通りにやっていく中で直面したエラーと対処法について紹介します。

Permission deniedエラー

pipバージョン指定したパッケージのインストールした際、次のようにPermission denied: '/usr/local/my_data'ができました。

% pip3 install sampleproject==1.2.0
Collecting sampleproject==1.2.0
  Downloading sampleproject-1.2.0-py2.py3-none-any.whl (3.8 kB)
Requirement already satisfied: peppercorn in /usr/local/lib/python3.11/site-packages (from sampleproject==1.2.0) (0.6)
Installing collected packages: sampleproject
  Attempting uninstall: sampleproject
    Found existing installation: sampleproject 3.0.0
    Uninstalling sampleproject-3.0.0:
      Successfully uninstalled sampleproject-3.0.0
  Rolling back uninstall of sampleproject
  Moving to /usr/local/bin/sample
   from /private/var/folders/h7/tlsd3sws26qdyrlph28ksk_w0000gn/T/pip-uninstall-l3u7_yz3/sample
  Moving to /usr/local/lib/python3.11/site-packages/sample/
   from /usr/local/lib/python3.11/site-packages/~ample
  Moving to /usr/local/lib/python3.11/site-packages/sampleproject-3.0.0.dist-info/
   from /usr/local/lib/python3.11/site-packages/~ampleproject-3.0.0.dist-info
ERROR: Could not install packages due to an OSError: [Errno 13] Permission denied: '/usr/local/my_data'
Consider using the `--user` option or check the permissions.

バージョン指定しない場合では、次のようにエラーになることはなかったので、1.2.0の後続バージョンで修正されたではないかと思われます。

% pip3 install sampleproject
Collecting sampleproject
  Downloading sampleproject-3.0.0-py3-none-any.whl (4.7 kB)
Collecting peppercorn (from sampleproject)
  Downloading peppercorn-0.6-py3-none-any.whl (4.8 kB)
Installing collected packages: peppercorn, sampleproject
Successfully installed peppercorn-0.6 sampleproject-3.0.0

そのため、Permission deniedエラーも無視していいと思いますが、エラーメッセージにある--userをつけると、次のようにエラーなくなります。

% pip3 install sampleproject==1.2.0 --user
WARNING: Ignoring invalid distribution ~ampleproject (/usr/local/lib/python3.11/site-packages)
Collecting sampleproject==1.2.0
  Using cached sampleproject-1.2.0-py2.py3-none-any.whl (3.8 kB)
Requirement already satisfied: peppercorn in /usr/local/lib/python3.11/site-packages (from sampleproject==1.2.0) (0.6)
WARNING: Ignoring invalid distribution ~ampleproject (/usr/local/lib/python3.11/site-packages)
Installing collected packages: sampleproject
  WARNING: The script sample is installed in '/Users/ユーザ名/Library/Python/3.11/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  NOTE: The current PATH contains path(s) starting with `~`, which may not be expanded by all applications.
Successfully installed sampleproject-1.2.0

ソースブロックだと分かりにくいですが、上記中にはWARNINGが入ってます。
特定なユーザ環境にしか適用されてないよと言ってますね。

それがい一応下記の対応で無事インストールできることを確認しました。

% sudo mkdir /usr/local/my_data
% sudo chown ${whoami}:staff /usr/local/my_data
% pip3 install sampleproject==1.2.0            
Collecting sampleproject==1.2.0
  Using cached sampleproject-1.2.0-py2.py3-none-any.whl (3.8 kB)
Requirement already satisfied: peppercorn in /usr/local/lib/python3.11/site-packages (from sampleproject==1.2.0) (0.6)
Installing collected packages: sampleproject
  Attempting uninstall: sampleproject
    Found existing installation: sampleproject 3.0.0
    Uninstalling sampleproject-3.0.0:
      Successfully uninstalled sampleproject-3.0.0
Successfully installed sampleproject-1.2.0

ここでは、--userをつける方で進めます。

WARNING: Ignoring invalid distribution ~ampleproject問題

アップグレードやってました。次のようになりました。

% pip3 install --upgrade sampleproject
Requirement already satisfied: sampleproject in /Users/ユーザ名/Library/Python/3.11/lib/python/site-packages (1.2.0)
Collecting sampleproject
  Using cached sampleproject-3.0.0-py3-none-any.whl (4.7 kB)
Requirement already satisfied: peppercorn in /usr/local/lib/python3.11/site-packages (from sampleproject) (0.6)
Installing collected packages: sampleproject
  Attempting uninstall: sampleproject
    Found existing installation: sampleproject 1.2.0
    Uninstalling sampleproject-1.2.0:
      Successfully uninstalled sampleproject-1.2.0
WARNING: Ignoring invalid distribution ~ampleproject (/usr/local/lib/python3.11/site-packages)
Successfully installed sampleproject
WARNING: Ignoring invalid distribution ~ampleproject (/usr/local/lib/python3.11/site-packages)
WARNING: Ignoring invalid distribution ~ampleproject (/usr/local/lib/python3.11/site-packages)

WARNINGが連発してます。。これで成功したの?!とだいぶ怪しいですが、ここの~ampleprojectはおそらくsampleprojectのことです。

そしたら、次のインストールされたパッケージとバージョンの確認で、やっぱり問題です。
次のようにPackageにはテキストのようにsampleprojectは表示されませんでした。

% pip3 list
WARNING: Ignoring invalid distribution ~ampleproject (/usr/local/lib/python3.11/site-packages)
Package    Version
---------- -------
cffi       1.15.1
docutils   0.20.1
peppercorn 0.6
pip        23.2.1
protobuf   4.21.12
pycparser  2.21
setuptools 68.0.0
wheel      0.41.0
WARNING: Ignoring invalid distribution ~ampleproject (/usr/local/lib/python3.11/site-packages)
WARNING: Ignoring invalid distribution ~ampleproject (/usr/local/lib/python3.11/site-packages)

/usr/local/lib/python3.11/site-packages配下を見てみたら、「~ample」や「 ~ampleproject-1.2.0.dist-info」というファイルがありました。

たぶんこいつが悪さしているだろうと思い、次のコマンド削除してみました。

rm -rf /usr/local/lib/python3.11/site-packages/\~ample*

そしたら無事次のようにインストールしたパッケージが表示されるようになりました。

% pip3 list                                              
Package       Version
------------- -------
cffi          1.15.1
docutils      0.20.1
peppercorn    0.6
pip           23.2.1
protobuf      4.21.12
pycparser     2.21
sampleproject 1.3.1
setuptools    68.0.0
wheel         0.41.0

sampleprojectは1.2.0から1.3.1にアップグレードされましたね。

参考

  1. MacOS Ventura Python version?

投稿日

カテゴリー:

投稿者:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です