幻魔ナイトブログ

主に絵、音楽、プログラミングなどについて書きます。

pyenvが複数あった件

f:id:MahiroN:20200823135552p:plain

概要

先日anacondaを入れたてanacodaから立ち上げたspyderでnumpyインポートができねーという意味不明な状況が起こりました。

なお自分のpython3の環境にはちゃんとNumpyが入っている。一体これはどういうことでしょう?

調べてみたところ環境が汚れきっていることが原因のようでした。 パソコン使い始めてプログラムはある程度かけるけどディレクトリ構成やアーキテクチャで詰まるという話はよくあることだと思います。

僕のような人を今後出さないためにも恥を忍んでここに載せようと思います。

原因を一言で言うと以下になります。
「pyenvの環境を作るディレクトリがおかしかった」 では解説していきましょう。

まず僕がpython3とpyenvを入れたのはKaggle用のスクリプトを作るためでした。その時にpyenvを使うのはKaggleの時だけだと当時の僕は思っていたのかこんな構成にしていました。

<ホームディレクトリ>/
--- work/
         |_ Kaggle_Code/
                  |_ py3_env/
                            |_ bin/
                                   |_ activate
                                   |_ activate.csh
                                   |_ activate.fish
                                   |_ ・・・
                           |_ etc
                          ・・・

一方anacondaを入れた時の構成は

<ホームディレクトリ>/
       |_ .pyenv/
                  |_ versions/
                             |_ anaconda3-5.3.0/
                                              |_ bin/
                                                    |_ activate
                                                    |_ ・・・
                                              |_ etc/
・・・・

という普通の構成

pyenvは複数のバージョンのpythonを使うための仮想環境ですが、そのpyenvまでが複数あったというのが今回の落ち。ほとんどのモジュールはKaggle配下に入っていました。

参考にしたサイト

お問合わせはこちら