pythonの小ネタ集
以下のように--system-site-packages
オプションを指定する。
pyenv virtualenv --system-site-packages «バージョン» «仮想環境名»
pipでインストールしたモジュールの依存関係を知りたいときがたまにある。
そんな場合は、以下の手順で。
まずは必要なモジュールのインストール
pip install pipdeptree
以下を実行
pipdeptree
参考:Python: pipdeptree でパッケージの依存関係を調べる
ちなみに、依存関係の矛盾がないかだけ確認したいなら、以下のコマンドでも可能。
こっちは特にインストールする必要はない。
pip check
通常、pyenv環境を設定していてもsudoでroot権限でスクリプトを実行するとsystemのpython(/usr/bin/python*
)で実行される。
sudoでもpyenvで指定したバージョンのpythonで実行するには/etc/sudoers
の secure_path=
の先頭に以下を追加する
«pyenvインストールディレクトリ»/plugins/pyenv-virtualenv/shims:«pyenvインストールディレクトリ»/shims:«pyenvインストールディレクトリ»/bin:
例えばこんな感じ。
/proj/.pyenv/plugins/pyenv-virtualenv/shims:/proj/.pyenv/shims:/proj/.pyenv/bin:
実行の際は -E
オプションをつけて環境変数を引き継いで実行する。
sudo -E python ~
この方法でpyenvコマンドも使えるようになる(pyenv local
くらいしか使い道はないけど)