tl;dr
pip install -r requirements.txt --target .
ってしたらエラーになって詰んでしまったのでメモ。
どうしたのか
エラー
ウオ…
Exception: Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 209, in main status = self.run(options, args) File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 335, in run prefix=options.prefix_path, File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 732, in install **kwargs File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 837, in install self.move_wheel_files(self.source_dir, root=root, prefix=prefix) File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 1039, in move_wheel_files isolated=self.isolated, File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 247, in move_wheel_files prefix=prefix, File "/usr/lib/python2.7/dist-packages/pip/locations.py", line 153, in distutils_scheme i.finalize_options() File "/usr/lib/python2.7/distutils/command/install.py", line 289, in finalize_options raise DistutilsOptionError("can't combine user with prefix, " DistutilsOptionError: can't combine user with prefix, exec_prefix/home, or install_(plat)base
エラーメッセージで検索すると以下のような対処方法がヒットするが、何れも --targe
オプション利用時の事例や対処方法ではなく…「これは困った」状態。
stackoverflow.com
--user
オプションと --prefix
オプションなんて使って無いけどなあと思いつつ。
対処
結局、以下のように対応。
stackoverflow.com
pip install --user --install-option="--install-purelib=/path/to/target_dir" -r requirements.txt
ドキュメント を確認すると --install-purelib
は pure Python モジュールのインストール先を指定するオプションのようだ。
うーん
根本解決してない :desuyone: