2012-03-26 5 views
4

私は、Pythonを使って特定の種類の科学的作業を行うための新しいPython新人グループのための新しいシステムをセットアップしています。それには2つの異なるpythons(32ビットと64ビット)があり、システム上のユーザーが使用する一連の共通モジュールをインストールしたい。複数のユーザまたはグループのためのVirtualenv

  • (a)の一部のモジュールは、両方のニシキヘビのために箱から出して動作し
  • (b)は、いくつかのコンパイルコードとPythonに応じて異なるインストール、および
  • (c)の一部がで動作しませんすべての特定のヒヨコに。

私はvirtualenv(+ wrapper)がこのような状況に適していると言われていますが、どうすればわかりにくいですか。

  1. virtualenvを使用して、各ユーザーごとに各モジュールをインストールすることなく、複数のユーザーアカウント間でサンドボックス化されたモジュールをセットアップできますか?
  2. virtualenvを使用して、ケース(a)のために時間を節約すること、つまりモジュールをインストールすることはできますが、すべてのパイソンに見せてもらえますか?

私は、環境を隔離し、ケース(c)の問題に応じて "workon science32"、 "workon science64"とタイプするというアイデアが気に入っています。

アドバイスありがとうございます。

答えて

3

virtualenvを使用すると、--no-site-packagesオプションを省略するだけで、各環境でグローバルにインストールされたシステムパッケージを使用できるようになります。これがデフォルト動作です。

それぞれの環境にそれぞれ独自のパッケージをインストールする場合は、--no-site-packagesを使用すると、あなた自身のモジュールをインストールするための裸のPythonインストールが得られます。これは、パッケージをシステムパッケージと競合させたくない場合に便利です。私は通常、システムのアップグレードが作業コードに干渉しないようにするためにこれを行います。

これらはサンドボックスとして考えているのは、部分的にしか分離されていないためです。 Pythonのバイナリやライブラリへのパスは環境を使うように変更されていますが、実際にはこれがすべてです。 Virtualenvは、コードが実行されて破壊的なことが起こるのを防ぎます。サンドボックスへの最善の方法は、Linux/Unixのアクセス許可を適切に設定し、それらに独自のユーザーアカウントを与えることです。バージョン1.7以降

1.7のデフォルトについては

EDITは、システムパッケージを含めないことですので、あなたは、システムのパッケージを使用しての行動をしたい場合は、--system-site-packagesオプションを使用します。詳細については、docsを確認してください。

+2

1.7 --no-site-packagesのデフォルトはhttp://pypi.python.org/pypi/virtualenv –

+0

@TomWillisありがとうございました。 – Kekoa

関連する問題