Skip to content

Instantly share code, notes, and snippets.

@otiai10
Last active April 17, 2017 02:00
Show Gist options
  • Save otiai10/1d14a39138ccfa56031907de805e47ef to your computer and use it in GitHub Desktop.
Save otiai10/1d14a39138ccfa56031907de805e47ef to your computer and use it in GitHub Desktop.
新たにPythonをビルドできないときのpyenv virtualenv

そもそもの問題

  • pyenv install [version] によって ~/.pyenv 以下にpythonがビルド&インストールされるはずだが、pythonをビルドするのに必要なパッケージが無いのでビルドが失敗する
    • 今回のケースだとopenssl-devel
    • 独自で入れるのは大変にめんどい&あぶない
  • 今回のケースでは、絶対にrootになれないという制約がある。これがなんにしても厄介。

状況

  • pythonがインストールされているpathはrootしかwrite権限が無いpath(/usr/local/的な場所)
  • pyenvによる新たなpythonのインストールができないため、pyenv versionsにはsystemしか無い状態
    • べつにそれに関しては文句は無い。system=2.7.10だし、じゅうぶん。

問題

  • しゃーないのでpython自体はsystem使いつつ、しかしvirtualenvは分けたいな、と思う。
  • pyenvのプラグインであるpyenv-virtualenvを使って新たな環境を作成しようとすると、権限の無い場所にsite-packagesを作ろうとしてコケる
    • これが直面している問題
$ pyenv virtualenv system hoge # systemしかないからしょうがない
Exception:
Traceback (most recent call last):
#
IOError: [Errno 13] Permission denied: '/usr/local/package/python/current2.7/lib/python2.7/site-packages/virtualenv.py

対策案?

  1. systemへのaliasみたいな感じでどうにか~/.pyenvsite-packagesを作るpythonのバージョンを定義する、とか?
  2. system使い続けていいんだけど、site-packagesをごっそり変える、とか?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment