🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

411閲覧

Python3のインストールは仮想環境を作る前?後?

Tomoyadesu

総合スコア1

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/03/09 23:07

前提・実現したいこと

基礎的な質問で申し訳ないのですが、疑問に思ったので、質問させていただきます。

最近、Python3開発では仮想環境を構築したほうが良いことを知りました。
仮想環境は、プロジェクト毎にPython3のバージョンを変えることができるメリットがあることを理解しました。

これは仮想環境に特定のバージョンのPython3をインストールすることで実現するのでしょうか?
つまり、仮想環境の外にはPython3をインストールする必要がないということでしょうか?

それとも、仮想環境の外に複数のバージョンのPython3がインストールされていて、そこから特定のバージョンのPythonを仮想環境で使うと指定しているということなのでしょうか?

補足情報(FW/ツールのバージョンなど)

Macで開発をしています。
学習初期に、python学習教材に言われるがままにAnacondaをインストールしました。
その後、開発に挑戦したTwitterbotをherokuにデプロイする際に、runtimeの記述でエラーが発生し、Pythonのバージョンを変える必要がありました。しかし、sys.pathを確認するとpython2.7の方を使っていたらしく、3に切り替える方法を探していたときに、仮想環境という概念を知りました。

こんな感じで仮想環境について学習中に、疑問に思ったので調べてみたのですが、理解できなかったので質問させていただきました。

Pythonはインストール方法やツールが多すぎて混乱してしまいます...
簡単な質問かもしれませんが、よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2021/03/09 23:18

「仮想環境」は、どのツールで作るものを想定していますか?
Tomoyadesu

2021/03/10 01:00

Anacondaをインストールしたので、condaで作るのかなと思ってます! ただ、pyenvや、venv、virtualenvなど、違うツールもたくさんあるらしいので、それぞれの違いをみて決めたいと思っています!
ppaul

2021/03/10 02:52

pyenvの上にanacondaを入れてcondaを動かすのは、技術力のある人にとっては便利ですが、そうでない人にとっては混乱とバグの原因になります。Tomoyadesuさんはやめておいた方が良いと思います。
Tomoyadesu

2021/03/10 02:56

アドバイスありがとうございます!複雑なんですね..... 今回は、仮想環境ではなく、pyenvのみを使って開発を進めてみようと思います!
guest

回答2

0

ベストアンサー

仮想環境という用語は定義があるわけではありません。
個人的な感覚だとこの用語は「なにかすでに環境があって、そこにあるパッケージは変更したくないorできないがこのパッケージを使いたい」とか「Aの作業とBの作業とでは必要なライブラリが(時にはバージョンが)違うからそれらを別々に管理したい」ととかいった目的の方に付いている名前のように思います。

そういった目的を実現する手段はいろいろとありえるわけで、実際に色々なものが実装されています。
その手段・レベル(つまり何を管理・分離しているか?)はさまざまで、こういうものが仮想環境だとは簡単には言えません。
どんな特徴が共通していますか? 似ていますか? と問われると、手段という視点から答えるのが難しくて、むしろその目的(上に「」で括って書いた、達成したい要求)の方にかろうじて似た部分がある程度だと感じています。


virtualenvや(Python公式ライブラリの)venvは、まずPythonがあって機能します。ある特定のPythonに対してそのディレクトリ下にインストールされているライブラリ群から分離したライブラリ環境を提供します。

Anacondaはそもそも単純にPythonだけの環境ではありません。PythonとPythonのライブラリだけではなく、さまざまなバイナリパッケージも提供しています。(PythonライブラリのXを使うのにlibXのバイナリが必要な場合、利用者がlibXを用意しなくてもAnacondaから提供されます。Windowsでは便利でした。最近はPythonライブラリがlibXを用意して入れてくれるものも多くなっているので話はややこしいですが)
したがって、Anacondaの仮想環境はPythonのライブラリだけではなくバイナリパッケージも分離できるものになります。

他にも pyenv-virtualenv とか pipenv とか pip-tools とか flit とか hatch とか Poetry とかがあったりします。
それぞれで何を管理し何を分離するか? が違うわけです。

投稿2021/03/10 01:32

編集2021/03/10 02:00
quickquip

総合スコア11231

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tomoyadesu

2021/03/10 02:33

ありがとうございます!とても腑に落ちました! 仮想環境を構築する目的に応じて、手法を使い分ける必要があるのですね! https://qiita.com/KRiver1/items/c1788e616b77a9bad4dd こんな記事を見つけて、quickquipさんの言っていることが分かったような気がします。 pyenvを用いれば、pyenv下にAnacondaもインストールできて、他のツールも使い分ける事ができるそうなので、一旦Anacondaをアンインストールしてpyenvで環境構築してみたいと思います!
quickquip

2021/03/10 02:47

pyenvは一個のディレクトリの下に複数のバージョン/実装/ディストリビューションをインストールして管理・切替するツールで、仮想環境と呼ばれることはあまりない気がしていて回答には書きませんでした。 複数のプログラム開発を並行して進めるようになるまでは、pyenvだけで環境構築して十分と思います。
Tomoyadesu

2021/03/10 02:53

ありがとうございます! つまり「Pythonのバージョンだけ変えたいのであれば、仮想環境構築する必要はなかった」という事ですね! pyenvについて、詳しく調べてみたいと思います!ありがとうございました!
quickquip

2021/03/10 03:24 編集

そう感じます。 「システムに入っているPythonは変更したくない/できない時に、自分のディレクトリの下に自分の管理下のPythonを手軽に入れられる」のがpyenvのメリットや目的と言えるかと。
quickquip

2021/03/10 03:05

その上で、自分がログインしている環境下で、システムのPythonよりもpyenv配下のPythonが優先されるように設定して使うような感じです。
Tomoyadesu

2021/03/10 04:11

使いたいバージョンのPythonをインストールして、Pathを設定する?という手順でうまく動くようになるのですね!細かい方法は自分で調べてみようと思います!
guest

0

仮想環境: Python環境構築ガイド - python.jp

仮想環境の作成

では、最初の仮想環境を作成しましょう。sample1 ディレクトリで、次のコマンドを実行します。
C:\Users\user1\sample1>python -m venv .venv

投稿2021/03/09 23:25

y_waiwai

総合スコア88038

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tomoyadesu

2021/03/10 01:14

ありがとうございます! venvについて調べてみたら、 Anacondaをインストールした場合は、condaを使って仮想環境を構築する Homebrewや公式サイトでインストールした場合は、venvを使って仮想環境を構築する という記事を見つけました! https://www.python.jp/install/anaconda/conda_and_venv.html 仮想環境構築は、Python3のライブラリを使って実行するので、Python3のインストールは仮想環境構築の前に行う必要があるという事であっていますでしょうか?
y_waiwai

2021/03/10 01:19

そういうことですね
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問