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

推薦する

YYミュージックは急速に成長しており、オンライン教育が今後の焦点となる

YY(別名「YY」、ウェブサイト:http://www.yy.com/)は、2005年にNetEas...

セックススキャンダルが業界の論争を引き起こす:2つの大手出会い系サイトが互いの秘密を暴露

エコノミック・ボイスによると、13日、「ファンド業界の幹部が出会い系サイトを利用して女性を騙していた...

自分の人生を大切にし、「匿名」アプリケーションには近づかないでください

最近、「Secret」と呼ばれる匿名アプリケーションが友人の間で非常に人気があります。私がこのアプリ...

「サンドボックス」から保存されたサイトの実践的な分析

サンドボックス期間とは、以下の期間を指します。新しいウェブサイトが立ち上げられると、検索エンジンはそ...

アップル、中国へのソースコード提出に反応

海外メディアの報道によると、アップルは製品のソースコードとキーを中国市場に提出し、監視用の「バックド...

例の議論: キーワードの競争力を判断する方法

キーワードの競争力を判断することは、すべての有能な SEO 担当者にとって必須のスキルの 1 つです...

個人のウェブマスターは、自分のウェブサイトで「飢餓マーケティング」をどのように実施するのでしょうか?

「ハンガーマーケティング」とは何ですか?過去2年間で中国で最も人気のあるスマートフォンとして、Xia...

2023 年のデータ分析とビジネス インテリジェンス開発のトレンドは何ですか?

2023 年を迎える今こそ、データ分析とビジネス インテリジェンスのトレンドが新年にどのようになるか...

hostirian: 米国の無制限トラフィックサーバー、1Gbps帯域幅、月額149ドル、e3-1230v6/16gDDR4/4Tハードドライブ

2001年に設立されたアメリカのサーバープロバイダーであるHostirianは、米国セントルイスに2...

深刻なサイトセキュリティ問題に直面してウェブサイトのセキュリティを強化する方法

5月29日、a5で「国内のウェブサイトは深刻なユーザーセキュリティ問題を抱えており、出会い系サイトの...

akkocloud: 夕方のピーク時にクラッシュせず、Naifeのブロックを解除できるドイツのcn2 gia VPS(1Gbps帯域幅)の簡単なレビュー

市場にはドイツの cn2 gia 回線を備えた VPS は比較的少なく、1Gbps の帯域幅を提供す...

2024 年に注目すべき 8 つのクラウド コンピューティング トレンド

この記事では、人工知能の影響、主要なテクノロジーの予測、クラウド インフラストラクチャの進化する状況...

小紅書のジレンマを解決できるのは誰か?

草植えトラックではアクションが頻繁に発生します。 3月10日のLatePostによると、lemon8...