pyenv+anacondaでpythonを導入したが、anacondaのデフォルトが3.7系だった。3.6を使いたいのだがいちいち環境を切り替えるのが面倒なので、どうしたらいいか悩んだ。
anaconda 3.5系の話です。
試行錯誤
anaconda側で何とかしようと思ったのだが、情報が見つからなかった。
じゃ、pyenvで何とかできないかとおもって
# pyenv versions system * anaconda3-5.3.1 (set by /home/User/.pyenv/version) anaconda3-5.3.1/envs/py36
おお?インストール時に
pyenv global anaconda3-5.3.1
としていれていたけど、新たに作った環境もpyenvで認識してるんだ。
ということで
pyenv global anaconda3-5.3.1/envs/py36
として、pyenvでデフォルトを変更して、念のため再起動
#python -V Python 3.7.1
うーん。だめっぽい。
そういえば、.bashrcに
export PATH="$PYENV_ROOT/versions/anaconda3-5.3.1/envs/py36/bin/:$PATH"
っていうパスがあったが、これを、作った環境のパスに変更したら?
export PATH="$PYENV_ROOT/versions/anaconda3-5.3.1/bin/:$PATH"
一応うまくいったぽいが・・・・
# python -V Python 3.6.7 :: Anaconda, Inc. # pyenv versions system anaconda3-5.3.1 * anaconda3-5.3.1/envs/py36
#conda info -e pyenv: conda: command not found The `conda' command exists in these Python versions: anaconda3-5.3.1
ですよねー。
解決
で、いろいろみてみたら、どうもanaconda4.4以降から仕様が変わったらしく、いままで
#source activate py36 をかやっていたのが、condaコマンドでやるようになったらしい。
試しにやってみたら、
# conda activate py36 CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'. If your shell is Bash or a Bourne variant, enable conda for the current user with $ echo ". /home/user/.pyenv/versions/anaconda3-5.3.1/etc/profile.d/conda.sh" >> ~/.bashrc or, for all users, enable conda with $ sudo ln -s /user/user/.pyenv/versions/anaconda3-5.3.1/etc/profile.d/conda.sh /etc/profile.d/conda.sh The options above will permanently enable the 'conda' command, but they do NOT put conda's base (root) environment on PATH. To do so, run $ conda activate in your terminal, or to put the base environment on PATH permanently, run $ echo "conda activate" >> ~/.bashrc Previous to conda 4.4, the recommended way to activate conda was to modify PATH in your ~/.bashrc file. You should manually remove the line that looks like export PATH="/home/user/.pyenv/versions/anaconda3-5.3.1/bin:$PATH" ^^^ The above line should NO LONGER be in your ~/.bashrc file! ^^^
ということらしい。
conda.shとconda activateをbashrcで実行して、今まであったPATHの指定は消しなさいとあるので、その通りにやってみた。
bashrcで環境の選択をしているので、ここで環境も一緒に指定してあげればよくない?ということで。
echo "conda activate py36" >> ~/.bashrc
として再起動したらうまくいきました!
が、プロンプトに
(py36) [user@dev ~]$
って出てうざいんですよねぇ・・・。なんとかならんのかな?
bashrcのconda activateを消したら・・・
#python -V
Python 3.6.7 :: Anaconda, Inc.
あれ?うまくいった?
#pyenv versions
system
anaconda3-5.3.1
* anaconda3-5.3.1/envs/py36 (set by /home/user/.pyenv/version)
どうも、新方式にするとpyenv での変更がちゃんと通るようになるっぽいです。
ということで、ちゃんと公式マニュアルをみて導入しましょう・・ということですね(汗