Pythonで仮想環境を作成して使用する方法

Pythonで仮想環境を作成して使用する方法

[[431838]]

数日前、会社から私のコンピューターに Anaconda プロセスが見つかったというメールを受け取りました。商用ソフトウェアは料金がかかるため、ソフトウェアのコンプライアンスのため、アンインストールするように求められました。この機会に簡単なチュートリアルを書きたいと思います。

Anaconda は科学計算に重点を置いた Python ディストリビューションであり、主に次の 3 つの利点があります。

  • numpyなど、科学計算によく使われるライブラリが多数含まれています。
  • 仮想環境を簡単に作成し、複数のPythonバージョンを管理し、condaが管理するライブラリをインストールできる環境管理ツールcondaを開発しました。
  • 科学計算関連のライブラリを多数管理しており、それらはすべてコンパイルされたバイナリ ライブラリです。 pip ライブラリと比較すると、より便利な場合もあります。たとえば、conda を使用すると、多くの C 言語ライブラリをコンパイルして直接インストールできるので、非常に便利です。

オンラインで検索したところ、Anaconda がライセンス ポリシーを変更したことがわかりました。以前は、個人バージョンを商用目的で使用できましたが、現在は使用できなくなりました。大規模商用企業のユーザーは有料となりますが、小規模商用ユーザー(200人未満)は個人版を引き続きご利用いただけます。

会社の検査はそれほど厳しくなく、見て見ぬふり、あるいは黙認していたのだと思います。しかし、完全な準拠を実現するために、会社は依然としてソフトウェアをアンインストールするように求めました。

(なぜ私たちに代わって支払ってくれないのですか?)

実際、Anaconda はソフトウェアに対して料金を請求しません。主に conda パッケージのオンライン サービスに対して料金が請求されます。つまり、サーバーからライブラリをダウンロードする場合は料金がかかりますが、conda ソフトウェアのみを使用する場合は料金はかかりません。

ただし、conda を使用するシナリオでは、主に複数の Python バージョンを管理するため、バイナリ ファイルをダウンロードする必要があるため、サーバーからパッケージをダウンロードする必要があります。

しかし、私はしぶしぶそれをアンインストールし、代替品を探し始めました。

結論:

  • Pythonのバージョンを1つだけ使用する必要があるが、複数の仮想環境が必要な場合は、venvを使用します。
  • 複数のバージョンのPythonと仮想環境を使用する必要があり、簡単に切り替えられる場合は、pyenvを使用してください。

Python における仮想環境は、互いに干渉しない複数の空間を作成でき、各空間にインストールされたパッケージは互いに独立している非常に便利な機能です。この要件の理由は、異なるソフトウェアがパッケージの異なるバージョンに依存しているためです。

たとえば、TensorFlow 1.0 と python3.5 に依存するソース コード セットがあり、TensorFlow 2.0 と python3.6 に依存する他の人のソース コードをダウンロードするとします。仮想環境がない場合、Python は異なるバージョンのライブラリを同じ環境にインストールできないため、非常に面倒になります。しかし、2 つの異なる Python 環境を作成すると、互いに干渉することなく 2 セットのコードを完全に実行できます。

以下は、conda pyenv venv の基本的な使用方法に関する簡単なチュートリアルです。

コンダ

condaで仮想環境を作成するコマンドは次のとおりです。

conda 作成 -n 新しい環境 python=3.8 numpy

このうち、-n new_env は新しい環境の名前を指定することを意味し、ここでは new_env と呼ばれ、python=3.8 は指定された python バージョン、numpy は環境を作成するときにインストールするパッケージを指します。複数書き込むことも、何も書き込まずに作成が完了するまで待ってからインストールすることもできます。

作成後、conda activateで環境をアクティブ化できます。

conda を有効化して新しい環境を構築

デフォルトでは、conda 環境は anaconda のルート ディレクトリにインストールされます。たとえば、私のAnacondaが/home/user/anacondaにインストールされている場合、現在の環境はhome/user/anaconda/envs/new_envにあります。

conda の利点は、Python のバージョンを選択できることです。Python インタープリターや対応するパッケージのバージョンが異なっていても、自分でコンパイルしなくてもダウンロード後すぐに使用できるコンパイル済みバイナリ ファイルを提供します。 pyenv を使用して複数のバージョンを管理することもできますが、自分でコンパイルする必要があります。自分でコンパイルする方が自由度は高くなりますが、より多くのスキルも必要になります。

conda の欠点は、依存関係の計算が遅いためインストールに時間がかかり、ネットワークが国内ユーザーにとってあまりフレンドリーではないことです。

ベンヴ

venvの使い方はとても簡単です

python3 -m venv 私の環境

これにより、my-env という新しい仮想環境が作成されます。 conda とは異なり、my-env はこのコマンドを実行するディレクトリに配置されます。

作成後、有効化する必要があります。次のコマンドを実行して有効にします

ソース my-env/bin/activate

venvの制限は、現在のPythonバージョンしか使用できないことです。

pyenv

pyenv は複数の Python 環境を管理するために使用でき、conda よりも使用が少し複雑です。

何が問題なの? Python ソース コードをダウンロードして自分でコンパイルする必要がありますが、conda はダウンロードしたバイナリを直接使用できます。 pyenv を使用して python 3.6 をインストールしたときにコンパイル エラーが発生しましたが、ビルド フラグを設定することで解決しました。

バージョンをインストールします: pyenv install 3.6.15

デフォルトのバージョンを設定します: pyenv global 3.6.15

インストール後、venv を使用して仮想環境を作成できます。

Pyenvにはcondaに似たvirtualenvコマンドが付属しており、仮想環境を作成するときにバージョンを指定できます。

pyenv 仮想環境 3.6.15 新しい環境

ただし、まず対応するバージョンの Python をインストールする必要があります。

上記では基本的に、Python で仮想環境を作成して使用するいくつかの方法について説明しました。

<<:  エッジコンピューティングが医療に変化をもたらす

>>:  ランサムウェア攻撃に対応する企業にとっての5つのゲームチェンジャー

推薦する

hostdare: クリスマス割引 35% オフ、ロサンゼルス VPS、年間 33 ドル、768M メモリ/1 コア/150g ハード ドライブ/600g トラフィック

毎年恒例のクリスマス期間中、hostdare は年間で最も安い VPS プロモーションを実施し、ロサ...

企業はどうすれば「クラウドトラップ」を回避できるでしょうか?

今日、クラウド コンピューティング テクノロジーは、柔軟性や収益を損なうことなく、企業が拡大する顧客...

ウェブマスターネットワークニュース: アリペイは来週オーバードロー可能 「万家ショッピング」ねずみ講事件の判決

1.百度は360をウェブマスタープラットフォーム文書の盗用で訴え、50万元の損害賠償を請求した8月8...

基本的なサイト内リンクを最適化する方法についての簡単な説明

誰もが外部リンクの役割を非常に重視していますが、内部リンクの重要性を無視することがよくあります。内部...

websound - 40% オフ、ロサンゼルス KVM VPS、512M メモリ + 2TB 帯域幅で 2.5 ドル

ロサンゼルス データ センターの websound の VPS (KVM 仮想) が 40% 割引に...

ビリビリと小紅書の「リブ」、虎埔?

ユーザー数の増加というプレッシャーがますます顕著になる中、若者を主なユーザーとするビリビリと、女性を...

ウェブサイトがブロックされた場合の一般的な予防策

多くの友人が、なぜウェブサイトが K-ed されたのか、K-ed された場合はどうすればよいのか、ウ...

個人のウェブサイト所有者に適した女性向けウェブサイトモデルは、女性向けウェブサイトがどのようにして月に数百万ドルを稼いでいるかを明らかにしている。

女性からお金を稼ぐのは簡単だということは誰もが知っていますが、具体的にどのように知られているのでしょ...

クラウドの可観測性における5つの主要な新たなトレンド

[[431137]] Red Hat の主席ソフトウェア エンジニアである Bartłomiej P...

vps.us $5.99 512M メモリ/XEN/50M 無制限

vps.us は Twinservers Hosting Solutions Inc. のブランドで...

課題に立ち向かう: 純粋なFLASHウェブサイトの最適化における3つの主要な問題を解決する

純粋な FLASH サイトの最適化は、SEO 業界では常に話題になっていますが、実用的な成果はほとん...

テンセントテクノパーク開発者会議ブロックチェーンフォーラム:テンセントクラウドブロックチェーンプラットフォームが業界統合を促進

12月20日、テンセントテックパーク開発者会議サブフォーラム「デジタル文明のための信頼フレームワーク...

広州の国立スーパーコンピューティングセンターが OpenStack グローバル スーパーユーザー賞の最終候補に選出

オープンソース分野における世界的なスーパーイベントである OpenStack Open Infras...