Help us understand the problem. What is going on with this article?

anancondaの仮想環境でpipを使うときの注意点

More than 1 year has passed since last update.

はじめに

conda installできないモジュールをインストールしたいときに、pip installしてもモジュールが使えなくて困ったことがあったので注意点を書きます。

問題点

condaで作った仮想環境内でpip installしたモジュールがその仮想環境内で使えない。

具体例

仮想環境(ここでは、kasouという名前)は

terminal
> conda create -n kasou 

で作れます。今の所、

terminal
> conda activate kasou # 環境によっては、source activate kasou
(kasou) > conda list


# packages in environment at /Users/usename/.pyenv/versions/anaconda3-5.1.0/envs/kasou:
#
# Name                    Version                   Build  Channel

とすると、何もないことがわかります。
この状態で、pip installすると、仮想環境内ではなく、rootのpipが使われてしまうので注意が必要です。
そして、モジュールもrootに入ります。

それでは、確認してみます。
試しに、pipでopencvを入れてみます。

terminal
(kasou) > pip install opencv-python

この段階では、仮想環境内ではopencvは使えません。
入っているか確認するために、以下のようにimportしてみます。

terminal
(kasou) > python
Python 3.6.5 |Anaconda custom (64-bit)| (default, Apr 26 2018, 08:42:37)
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>>

これで、確認できているかと言えばそうじゃないです。
仮想環境内にpythonがないので、rootのpythonをひっぱってきてます。

なので、仮想環境内にpythonを入れて確認します。

terminal
(kasou) > conda install python
(kasou) > python
Python 3.7.0 (default, Jun 28 2018, 07:39:16)
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'cv2'
>>>

すると、opencvが入っていないことが確認できます。

対策

仮想環境内でpipを使いたいときは、condaでpipをインストールしてから、pipを使います。

terminal
(kasou) > conda install pip
(kasou) > pip install hoge

ちなみに...

仮想環境から出る時

仮想環境から出る時はこんな感じ。

terminal
(kasou) > conda deactivate

仮想環境を削除する時

仮想環境を削除するときはこんな感じ。

terminal
> conda remove -n kasou --all

最後に

わかってたら当たり前のことですが、はじめは気付かなかったのでまとめました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした