お久しぶりです。1年以上ブログを放置していましたが今回はPythonista3で「pip list --outdated」をするお話です。
github.comGitHubに私が公開した上記のツールを利用します。
まず、「pip-configration-tool.py
」を
Githubからコピーして実行します。
または下記のコードをコンソールへコピペして実行します。
import requests as r; exec(r.get('https://tinyurl.com/Setup-pipTerminal').content)
スクリプトのやっていることはとても単純で、後からインストールするpipに「モジュールのインストール場所はここですよー」と教える設定ファイルを環境変数「$HOME」内の「.config/pip」に作成しているだけです。
ただし、やっていることは簡単でもここの質問を見つけるまで結構な時間を要しました。
上記のstackoverflowには
[global]
prefix={Install path}
を$HOME/.config/pip/pip.configに記載すればいいと書いてあります。
本ツールはこの手間をなくすべく作成したツールです。
※2023年5月30日追記
Pythonista3がバージョン3.4へ上がり、targetがprefixへと変わったので書き換えました。
話が逸れましたが、実行しましたらPythonista3を再起動して下さい。
次に私が適当に作ったpipTerminalなるものを起動します。
実行すると「mobile@[DeviceName]~Documents$: 」と出てきます。ここで「pip list」と入力するとモジュールが表示されます。
次に「list --outdated」と入力してみると何も表示されませんが、これはまだアップデートするパッケージがないためです。
アップデートするパッケージがあると一覧として表示されます。
実はこのpipTerminalはsys.argvへ無理矢理引数を渡しているだけです(笑)
※2021年8月28日追記
pipTerminalの大幅な改修を行い、pip以外のコマンドを使えるようにしてさらに改良をしてみました。
※2023年5月30日追記
pipTerminal周りと導入の簡略化をしました。
実行すると以下の画像の様になります。
例に上げると以下のようになります。
sys.argv[1:] = input('PyTerminal~# ').split(' ')
このように書くと「sys.argv[1:]」に「input」で渡された入力を「スペース」で区切ってリストにしてから「sys.argv[1:]」へ渡しています。
(※pipTerminalは上記の方法を基に作られています。)
「sys.argv」はリスト形式で引数を扱っているのでこうするとinputでもコマンドを実行できるようです。