Anaconda navigatorとvscodeの仮想環境について

X
     この記事はプロモーションを含みます
Content

anaconda navigatorを使用してvscodeを起動

AnacondaはPythonとRのためのパッケージ管理と環境管理を一体化したプラットフォームです。Anacondaを使用すると、仮想環境を簡単に作成・管理することができます。conda コマンドを使って、プロジェクトごとに独立した環境を設定できます。

例えば、新しい環境を作成するには以下のようなコマンドを使用します。

# 新しい環境を作成(ここでは環境名をmyenv、Pythonのバージョンを3.8としています)
conda create --name myenv python=3.8

環境をアクティベートするには:

# Windows
conda activate myenv

# macOSとLinux
source activate myenv

このようにして作成された仮想環境は、その環境内でインストールされたパッケージやライブラリ、Pythonのバージョンなどが独立しています。これにより、プロジェクトごとに必要な依存関係を整えやすく、他のプロジェクトに影響を与えることなく作業ができます。

この依存関係は仮想環境内だけで依存する?

仮想環境内での依存関係です。Anaconda(またはvenvなどの他の仮想環境ツール)を使用すると、作成した仮想環境は独立した空間となります。その環境内でインストールされたPythonパッケージやライブラリ、さらにはPython自体のバージョンも、その仮想環境内でのみ有効です。

例えば、プロジェクトAでTensorFlow 2.xが必要で、プロジェクトBでTensorFlow 1.xが必要な場合、それぞれ別の仮想環境を作成して依存関係を管理することができます。

プロジェクトAの仮想環境:

  • Python 3.8
  • TensorFlow 2.x

プロジェクトBの仮想環境:

  • Python 3.7
  • TensorFlow 1.x

このようにすることで、各プロジェクトの依存関係が独立して管理され、互いに干渉することなく開発を進められます。

仮想環境の破棄の仕方

仮想環境を破棄(削除)する場合、conda コマンドを使用して環境を削除することができます。具体的には以下の手順を実行します。

  1. 環境をデアクティベート: 削除する前に、対象の仮想環境がアクティブでないことを確認します。 conda deactivate
  2. 環境を削除: 以下のコマンドで仮想環境を削除します(myenvは削除する環境名)。
    bash conda env remove --name myenv

この操作により、指定した仮想環境とその環境内にインストールされていたパッケージ、ライブラリ等が削除されます。ただし、この操作は不可逆なので、実行前に必要なデータのバックアップを取るなど、注意が必要です。

もちろんGUIでも操作できます。見ればわかりますので画像みてください。

対象となる仮装環境を選択してremoveすればOKです。

Anaconda  navigatorの仮想環境の削除の方法

Anaconda navigatorからvscodeを起動して行ってますが この場合も仮想環境を制御するのは上記ですか?

Anaconda navigatorからvscodeを起動

VSCode(Visual Studio Code)をAnaconda navigator経由で起動している場合でも、仮想環境の制御は基本的に上記で説明したcondaコマンドを用いて行います。VSCodeはAnacondaと連携が可能であり、VSCode内で直接仮想環境を選択、アクティベート、デアクティベートすることもできますが、その裏側で動いているのはcondaです。

VSCode内で仮想環境を操作する場合、以下のような手順が一般的です。

  1. VSCodeの(Python拡張機能インストール後)右下にあるPythonインタープリタ選択部分をクリック: これにより、使用可能なPythonインタープリタ(仮想環境も含む)の一覧が表示されます。
  2. 目的の仮想環境を選択: これでVSCodeのターミナルやPythonエクステンションは選択した仮想環境を使用するようになります。
  3. ターミナルでパッケージ操作: VSCodeの内蔵ターミナルでもcondaコマンドが使用できます。これを用いてパッケージのインストールや削除を行うことができます。

このように、VSCode内で仮想環境を制御する場合でも、基本的な操作はcondaコマンドによって行われます。ただし、GUIを通じてより直感的に操作できる点がVSCodeの利点です。

vscodeのPython拡張をいれた場合

通常Pythonで開発するならvscodeにPythonの拡張機能を入れますよね?

そうするとエディターがPython仕様になって使いやすいのと同時にエディタの右上に動作ボタンが出現します。

これなかなか便利なんですけど一つ疑問点が。

vscode内のターミナルを起動すると妙なプロンプトが出ます。

(sel390ver) (base) suzukimakoto@MacBook-Pro [~]$ こんな感じね

こういうプロンプトが出てきてなんじゃこりゃ?と思って色々と調べてたのですが

一見するとAnaconda navigatorの環境にbase(root)がありますので

仮想環境が二重に起動してるの??って思ってしまいます。

vscodeから GPT4仮想環境を選択してvscodeのターミナルを起動すると以下のようになります。

(GPT4) (base) suzukimakoto@MacBook-Pro [~]$ conda info -e
# conda environments:
#
base                  *  /Users/suzukimakoto/anaconda3
GPT4                     /Users/suzukimakoto/anaconda3/envs/GPT4
sel310ver                /Users/suzukimakoto/anaconda3/envs/sel310ver
sel390ver                /Users/suzukimakoto/anaconda3/envs/sel390ver
selenium                 /Users/suzukimakoto/anaconda3/envs/selenium

この場合実際の環境は baseですのでここで conda install を行うと base に対して行ってしまいます。

この状態でconda deacitivate してみると

(base) (GPT4) suzukimakoto@MacBook-Pro [~]$ conda info -e
# conda environments:
#
base                  *  /Users/suzukimakoto/anaconda3
GPT4                     /Users/suzukimakoto/anaconda3/envs/GPT4
sel310ver                /Users/suzukimakoto/anaconda3/envs/sel310ver
sel390ver                /Users/suzukimakoto/anaconda3/envs/sel390ver
selenium                 /Users/suzukimakoto/anaconda3/envs/selenium

まだbaseのままで変わりませんねぇ・・・。

さらに conda deactivateしてみます。

(GPT4) (GPT4) suzukimakoto@MacBook-Pro [~]$ conda info -e
# conda environments:
#
base                     /Users/suzukimakoto/anaconda3
GPT4                  *  /Users/suzukimakoto/anaconda3/envs/GPT4
sel310ver                /Users/suzukimakoto/anaconda3/envs/sel310ver
sel390ver                /Users/suzukimakoto/anaconda3/envs/sel390ver
selenium                 /Users/suzukimakoto/anaconda3/envs/selenium

仮想環境がGPT4用に変化しました。

さっぱりわかんねぇ笑

conda deactivate をさらにすると ノーマルのプロンプトに戻ります。非仮想環境ですね。

(GPT4) (GPT4) suzukimakoto@MacBook-Pro [~]$ conda deactivate
suzukimakoto@MacBook-Pro [~]$ conda info -e
# conda environments:
#
base                     /Users/suzukimakoto/anaconda3
GPT4                     /Users/suzukimakoto/anaconda3/envs/GPT4
sel310ver                /Users/suzukimakoto/anaconda3/envs/sel310ver
sel390ver                /Users/suzukimakoto/anaconda3/envs/sel390ver
selenium                 /Users/suzukimakoto/anaconda3/envs/selenium
suzukimakoto@MacBook-Pro [~]$ conda activate GPT4
(GPT4) suzukimakoto@MacBook-Pro [~]$ conda info -e
# conda environments:
#
base                     /Users/suzukimakoto/anaconda3
GPT4                  *  /Users/suzukimakoto/anaconda3/envs/GPT4
sel310ver                /Users/suzukimakoto/anaconda3/envs/sel310ver
sel390ver                /Users/suzukimakoto/anaconda3/envs/sel390ver
selenium                 /Users/suzukimakoto/anaconda3/envs/selenium

(GPT4) suzukimakoto@MacBook-Pro [~]$ 

うーんなにか設定が間違ってるのかなー・・現在色々と調べてます。

知っている人いたら教えてください

仮想環境の二重起動問題:解決しました(多分)

自分のホームディレクトリに .condarcがありますがこいつを編集して

channels:
  - defaults
auto_activate_base: false
channels:
  - defaults
auto_activate_base: false

とやったら base 環境が多重に起動しなくなりました。

とりあえずこれで様子見ます。

仮想環境の二重起動:根本的な理由の追記

ここに答えが書いてある笑 いつのまにかごちゃごちゃ設定しているうちに true にしてた模様。

設定が多岐に渡るときにありがちなヒューマンエラーですな。

  • URLをコピーしました!

この記事を書いた人

makotoのアバター makoto Blogger&YouTuber

サーバー管理者として17年ほど仕事でサーバー触ってました。
www,mail,dns,sql各鯖をすべてFreeBSDで運用してましたが現世ではかなりレアなタイプになるみたいですね笑

viやシェルスクリプトとかperlとかgccとかFreeBSDとか実はbashよりtcshが好きとか時々寝ぼけるのは
その名残でしょう。

今まで縁の下の力持ち的な他人のためにプログラムを書き他人のためにサーバー構築し他人のためにWEBサイトを創る的な世界から
自分の好きなことに集中できる環境は実に気持ち良いですね。
現役は引退済みなので難しいことはやりませんしやれません。

現在 ほぼ自由人。

Content