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

推薦する

racknerd: 2018 米国独立記念日「ロサンゼルス」VPS プロモーション、年間 29 ドル、2.8G メモリ/3 コア/58g SSD/5T トラフィック

Racknerdは、米国独立記念日のプロモーション用の格安VPSを発表しました。2つの米国の格安VP...

なぜ私たちはSina Weiboマーケティングは長いプロセスだとよく言われるのでしょうか

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス鄧超は「走れ!男」の演技...

今日、SEO はどのように効果を発揮できるのでしょうか?

Baidu の Green Radish Algorithm の登場以来、多くのウェブマスターが何度...

SEOデータ分析手法1:キーワードランキング分析

みなさんこんにちは。私は徐子宇です。 SEO は非常に基本的なマーケティング手法ですが、さまざまなマ...

新年のクラウドコンピューティングの予測

毎年年末になると、今後 365 日間でクラウド コンピューティングがどのように発展していくかについて...

ブランドマーケティングのための3つの革新的な公式

2年前、私は「3年間でマーケティングの古典書籍を200冊読む」という目標を立てました。この目標はまだ...

Kingsoft CloudとJD Cloudが合併を否定。キングソフト・ソフトウェアはJDとの協力を協議中と発表

1月10日、「有識者」はJD CloudとKingsoft Cloudが合併し、人事を担当するHR部...

外部データ製品の構築がなぜ難しいのでしょうか?

著者 |リオル・ガビッシュ翻訳者 |ザイ・ケ企画 |ウー・ムー強力なエグゼクティブ ダッシュボード、...

電子商取引インターネット マーケティング: ROI の罪と罰 (パート 1)

ほとんどの男は、厳しい真実に直面するよりもそれを否定するほうを選ぶ。 – ティリオン・ラニスター、『...

クリック率の高い商品を宣伝する方法 バナー広告デザイン 14 のヒント

インターネットは急速に発展していますが、バナーを使用して商品を宣伝することが依然として最善の方法です...

プロメテウスは10GのFTPバックアップスペースを無料で提供

LEB で 1 位にランクされている Prometeus は、現在、顧客に 10G のバックアップ ...

複雑さの原因である高可用性についてお話ししましょう

高可用性は、システムが継続的かつ中断なく機能を実行する能力として定義され、システムの可用性を測定する...

分散システムの一般的な考え方と技術の概要

[[349357]]分散システムはスタンドアロンシステムと比べてどのような困難を抱えているのでしょう...