5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

pyenv内のAnacondaで環境構築したい

Last updated at Posted at 2018-12-04

はじめに

今までvirtualenvで環境構築をしていたのですが、Tensorflowのインストールで詰まり、Anacondaを使いたいと思ったのがきっかけです。
Anacondaを直接インストールする権限が無かったので、pyenv内のAnacondaを使用しようと思いました。
本当は、pyenvとAnaconda/minicondaを同時に使うのは大変なのであまりおすすめしません。
本記事は、Anaconda/minicondaを使いたいけど、インストールできない人向けの記事です。

公式URL

Anaconda: https://www.anaconda.com/
Miniconda: documentation: https://conda.io/docs/index.html
pyenv: https://github.com/pyenv/pyenv

環境

ソフト version or 有無
CentOS 6.5
Python Python 2.7.8
pyenv
virtualenv
Anaconda/Miniconda
pyenv-virtualenv
pyenv内のAnaconda anaconda3-5.2.0

有無と書いてありますが、✗をつけているのは権限の関係でインストールできなかったものです。(頼めばいいだけの話ではあるのですが)

解決法

設定を書いたyaml fileを使用します。以下は例です。

myenv.yaml
name: myenv
dependencies:
- python=2.7
- beautifulsoup4
- h5py
- html5lib
- keras
- pandas
- pip
- pytest
- tensorflow

- pip:
  - slackweb==1.0.5

yamlファイルを作成したら、以下のコマンドで環境の作成をして、その環境をactivateします。

$ pyenv local anaconda3-5.2.0
$ conda env create --file myenv.yaml
$ pyenv local --unset
$ pyenv local anaconda3-5.2.0/envs/myenv

環境をいったん作ったあとに一度pyenvの設定を解除して、pyenvで環境まで含めたものを選択するという、まどろっこしいことをしているのですが、
理由については後述します。(もっと良い方法をご存知の方がいらっしゃいましたら教えていただきたいです!)

環境を削除したいとき

$ pyenv local anaconda3-5.2.0
$ conda env remove --name myenv

anaconda3-5.2.0/envs/myenv に設定していると、削除できません。

解決法に至るまで

最初、以下のように、作成した環境をactivateしようとしていました。

$ pyenv local anaconda3-5.2.0
$ conda env create --file myenv.yaml
$ source activate myenv
pyenv: -bash: command not found

上記のエラーが出るのは、PyenvとAnacondaのactiveがバッティングしてしまうのが原因のようです。
このために解決法では一旦pyenvを抜けてから、pyenvでcondaで作った環境まで含めて指定するようにしています。

環境作成時にyamlファイルを作っておくといい理由

Pyenv内のAnaconda内の環境内(記事内の例では myenv)では、condaコマンドを使えません。
環境を作る際に、conda installを済ませる必要があります。

まとめ

Anaconda/Minicondaを直接インストールできるならその方が楽です。
Pyenv とAnacondaの両方を入れるのは、source activateが衝突してしまい、本当はあまり良くないと思うので、
本当に困ったときに参考にしてください。

参考URL

Creating an environment from an environment.yml file
conda env create
condaによるポータブルなPython環境構築のすすめ

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?