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つのゲームチェンジャー

推薦する

ネット収入初心者の皆さん、無人オンデマンドステーションで稼げると思いますか?

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています生放送?ビ...

VMware のフルスタック エンタープライズクラスのプライベート クラウドが徐州医科大学付属病院のスマート病院構築を支援

2022年7月19日、VMware(NYSE:VMW)は徐州医科大学付属病院がマルチクラウドソリュー...

クラウドコンピューティングが急速に成長するにつれ、企業はコスト管理に注力している。

クラウド コンピューティングが普及し、急速に成長し続けるにつれて、企業には潜在的に増大するコストに対...

YYミュージックは、虚栄心を利用してユーザーにお金を払わせる方法を教えてくれる

昨日、YY.comの親会社であるJoyyは、米国証券取引委員会(SEC)に米国でのIPO目論見書を正...

AIとクラウドが出会うとき、Amazon Web Servicesはクラウド上でのイノベーションを世界に提供します

[51CTO.comからのオリジナル記事] AlphaGoがイ・セドルと柯潔を破った後、人間と機械の...

広告業界関係者によると、追跡クッキーは最長5年間保存される可能性がある

北京時間4月28日、海外メディアの報道によると、ブリリグ広告市場の副社長ポール・チミノ氏は、追跡機能...

業界ウェブサイト構築の外部リンクレイアウト

先日、A5版の「業界ウェブサイト構築のキーワードレイアウト」と「業界ウェブサイト構築のファイル保存レ...

dedipath: ロサンゼルスで今のところ最も安い 1Gbps 無制限専用サーバー

ロサンゼルス データ センターの Dedipath サーバーは冬のプロモーションを実施しており、E3...

初心者が外部リンクを構築するためのヒントと簡単な方法

SEO が米国から中国に導入されてからまだ 10 年も経っていませんが、中国人にとって SEO の役...

constantvps-$7/kvm/1g メモリ/40 ハードディスク/1G ポート/無制限トラフィック/Windows

constantvps のさらに 2 つの特徴的な VPS をお勧めしたいと思います。どちらも KV...

#11.11# tmhhost: 「ダブルイレブン」VPS 大セール、日本 CN2、米国 (3 つのネットワーク) cn2 gia、韓国 CN2、日本 Softbank

tmhhostの「ダブルイレブン」イベントが始まりました。プロモーション内容には、日本CN2 VPS...

2020年:世界のクラウドコンピューティングにおける11の主要年間トピックのレビュー

毎年、整理し、まとめ、努力し、そしてまた始める必要があります。 2020年、今年はさらに振り返る価値...

ネットセレブが海外に進出する中、YouTubeが次の戦場になるかも!

中国でショート動画のネット有名人第1位といえば、まず江坡(パピ・ジャン)を思い浮かべる人が多い。 2...

Kafka の消費とハートビート

はじめに Kafka は、分散型、パーティション化、マルチコピー、マルチサブスクライバーのメッセージ...

クラウドストレージの構築とプライベートクラウドとパブリッククラウドの違いの比較

クラウド ストレージのような比喩は少し大げさに聞こえるかもしれませんが、それでもクラウドに関連する漠...