pip 使おうとしたら
◆ 困る所多かった
◆ 思ったほど便利でも親切でもない
◆ 思ったほど便利でも親切でもない
Windows
Python を実行するのは基本 Linux のみだったのですが Windows でのエディタを VSCode にすると静的解析やコードフォーマットのために Python のツールが必要になりました基本は自動でいれてくれるみたいだったので Yes を押していたらエラーになってました
Windows に入れたのってもう数年までなので 古いバージョンなのも原因かもと新バージョンを入れました
インストールしたのに全然見当たらないのでショートカットをたどるとなんと
c:\program files (x86)\microsoft visual studio\shared\python36_64\
にいました
VisualStudio でも入ってたようです
c:\program files (x86)\microsoft visual studio\shared\python36_64\
c:\program files (x86)\microsoft visual studio\shared\python36_64\scripts\
この 2 箇所に PATH を通して 再度 VSCode でインストールしようとするとまたもエラーです
pip コマンドでインストールしてるようなので pip のアップデートをしてみようと
pip3 install -U pip
を実行してみてもエラーです
エラーメッセージによると program files 以下なのでアクセス権限の問題でインストールできないみたいです
対処方法をググってみてもこれと言ってでてきません
すごく ヒットしそうなエラー理由なんですけど
コマンドのヘルプをみてると --user を指定すれば ユーザフォルダにインストールできるようです
pip3 install -U pip --user
無事成功したのですが 今度は pip コマンドが動かなくなりました
インストール場所が
C:\Users\user\AppData\Roaming\Python\Python36\site-packages\
と別の場所なので PATH に記述した場所と違うからでした
なるほどー
PATH 修正しようかと思ったのですが VSCode で実行されたのを見ると python コマンドで -m pip を指定してます
そんな書き方できるんだ と
python -m pip install --version
を実行してみると PATH 指定なくても動きました
こっちのほうがいいですね
Linux
Linux でもパッケージを入れたくて install を実行したらipapython 4.6.3 requires python-ldap, which is not installed.
依存関係のエラーみたいです
ないなら入れてくれたらいいのですが よくあるパッケージマネージャみたいにインストールしてくれないみたいです
pip のパッケージのチェックができる check コマンドがあるみたいなのでやってみると
python3 -m pip check
でも同じメッセージでした
チェックはしてくれてもダメというだけで直してくれないみたいです
直すコマンドもあるのかと探しては見たものの見当たらなかったので 必要と言われてるパッケージを直接インストールしてみました
sudo python3 -m pip install -U python-ldap
インストール時にエラーが出て Python.h がないと言われたので python3-devel をインストールするとインストールが完了しました
これまでのエラーもこれが原因かと思ったのですが インストールされてませんといわれるだけで インストールしようとしてエラーが出たとは表示されませんでしたし ビルドのようなことを試す間もなくインストールされてないと出たので 試してすらなさそうです
必要と言われたパッケージを入れると pip check でもエラーが出なくなって 無事目的のパッケージをインストールできました
ローカルインストールはできないみたい
pip を使って気になったのがインストール場所ですnpm や composer に当たるものだと思って使ってたのですが インストール場所はグローバルもしくはユーザ単位のグローバルだけです
カレントディレクトリにインストールされません
オプションにもそういうのはなさそうです
package.json 的なのも無いようです
調べてみると そういうことをするには virtualenv というのを使って Python の仮想環境を作ってその環境でのグローバルがプロジェクトのフォルダ みたいなことにするらしいです
pip 的にはその環境でのグローバルなインストールのみのようです
Python のイメージが
Python ってツール周りも もっと使いやすく親切なものって印象だったのですが 思ったより困ることが多めです (今回に限らずローカルへのインストールするかはツールの方針だとしても
Windows で標準インストール先は Program Files のどこかで そこに書き込みできないのは昔からのことなので デフォルトをユーザフォルダやユーザ共通の書き込み可能フォルダにするとか
依存関係に問題あって足りないパッケージがわかってるなら自動でインストールしてくれたりしてもいいと思うのですけど
Program Files にインストールした場合 拡張的なファイルはユーザフォルダに置くようにするツールは Win7 の頃からよくありますし 技術的な問題もなさそうです
依存関係は今回は足りないパッケージ一つでしたが 複数あると大変です
ネット調べてると 要求されてるパッケージ一覧を取得してそれらをインストールするスクリプト紹介してるページもあって そんな事しないとダメなの?って気分になりました
Python って昔からあるバージョンから大きく仕様が変わったアップデートもあって 最近は 3 がデフォルトになってきつつあって 機械学習とかの流行りでユーザも増えて VisualStudio でも使えるようになってたりと 良さそうな印象は多かったですが 特別良いとかそんなこともなく 良い部分もあれば悪い部分も多いし 分かりづらいエラーはあるし ググっても全く同じという解決作があるとも限らず 自分でどうこうすることできる力が必要な感じでした
そういえば Python のパッケージマネージャでなぜか良さそうなイメージがあります
dnf が原因でしょうか
便利だし親切だし変なエラーにあまり悩ませられないし なにより初めて (yum の頃) 使った時によくわからない状態で使っててもちゃんと動いてくれて 困らなかった覚えがあります
pip の場合は今回の通りいきなり苦労することばかりで第一印象が 使えないもの になりかけです