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

推薦する

簡単な分析: SEO ウェブサイトの詳細設計が成功と失敗を左右する

「外部リンクは王様、コンテンツは女王」という言葉は SEO 業界では不変の定理となっているようで、多...

エッジコンピューティング: 流行語か未来か?

市場調査・コンサルティング会社グランドビューリサーチは、「コロナウイルスが世界的に蔓延する中でも、エ...

ウェブサイトのホームページスナップショットが更新されない

ウェブマスターであれば、ウェブマスターツールを使用してウェブページのスナップショットがタイムリーに更...

有能な SEO 担当者になるにはどうすればいいですか?

有能な SEO 担当者になるにはどうすればよいでしょうか。インターネット マーケティングや Web ...

hostodo-$16/年/1g メモリ/90g ハードドライブ/3T トラフィック/ダラス

hostodo の所有者は、ダラスのデータセンターの VPS を宣伝するためにユーザーにメールを送信...

Pacificrack US VPSクラスターが期間限定で50%オフで販売中、32個のCセグメントがランダムに割り当てられる

アメリカのQNデータセンター傘下のVPSブランドであるPacificrackは、同社のクラスターVP...

分析例: ファン数が少なくてもWeiboプロモーションは成功できる

中国におけるWeiboの急速な発展に伴い、企業リーダーと一般市民の両方がWeiboプラットフォームに...

Baidu Knows を使って正確なロングテールキーワードをマイニングする方法の分析例

ロングテールキーワードは、もたらされるトラフィックが非常に正確であり、ユーザーの検索目的も非常に明確...

SEOでウェブサイトがダウングレードされる理由とその解決方法

月収10万元の起業の夢を実現するミニプログラム起業支援プラン現在、ネットワークトラフィックの迂回を行...

Ganji.comの「小さなロバが水車を引く」が家探しフェスティバルで公開され、分類情報サイトが次々と打ち負かされた

インターネットが急速に発展する時代、発展は流れに逆らって航海するか、平原で馬を走らせるようなものです...

エッジコンピューティングはモノのインターネットにおける6つの重要な問題を解決します

クラウド コンピューティングは、ビジネスに革命をもたらし、社内で何もしなくても、より安価で、より柔軟...

海外のVPSレンタル業者が推奨する、あなた自身のVPSレンタル体験をまとめ、共有する

海外VPS(海外VPSレンタル、海外VPSレンタル)をレンタルする場合、(1)国内市場と比較した速度...

budgetvm-E3シリーズサーバー/最低29ドル/最大8つのCセグメントIP/256の無料

budgetvm の最新プロモーション: 両方の Smart Server モデルが 10 ドル値下...

ウェブサイトのランキングを向上させる戦略

ウェブサイト構築の目的は、Yahoo、Baidu、Google で信頼性の低いランキングやポジション...