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
コマンドを使用して環境を削除することができます。具体的には以下の手順を実行します。
- 環境をデアクティベート: 削除する前に、対象の仮想環境がアクティブでないことを確認します。
conda deactivate
- 環境を削除: 以下のコマンドで仮想環境を削除します(
myenv
は削除する環境名)。bash conda env remove --name myenv
この操作により、指定した仮想環境とその環境内にインストールされていたパッケージ、ライブラリ等が削除されます。ただし、この操作は不可逆なので、実行前に必要なデータのバックアップを取るなど、注意が必要です。
もちろんGUIでも操作できます。見ればわかりますので画像みてください。
対象となる仮装環境を選択してremoveすればOKです。
Anaconda navigatorからvscodeを起動して行ってますが この場合も仮想環境を制御するのは上記ですか?
VSCode(Visual Studio Code)をAnaconda navigator経由で起動している場合でも、仮想環境の制御は基本的に上記で説明したconda
コマンドを用いて行います。VSCodeはAnacondaと連携が可能であり、VSCode内で直接仮想環境を選択、アクティベート、デアクティベートすることもできますが、その裏側で動いているのはconda
です。
VSCode内で仮想環境を操作する場合、以下のような手順が一般的です。
- VSCodeの(Python拡張機能インストール後)右下にあるPythonインタープリタ選択部分をクリック: これにより、使用可能なPythonインタープリタ(仮想環境も含む)の一覧が表示されます。
- 目的の仮想環境を選択: これでVSCodeのターミナルやPythonエクステンションは選択した仮想環境を使用するようになります。
- ターミナルでパッケージ操作: 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 にしてた模様。
設定が多岐に渡るときにありがちなヒューマンエラーですな。