7

ビルドアウトに完全に切り替えようとしていますが、開発環境にはすでに多くのものがインストールされています/usr/lib/pythonxx/

buildout がシステムに既にインストールされているライブラリを使用していないことを確認するにはどうすればよいですか? 最終的には virtualenv なしで?

たとえば、この動作を回避するにはどうすればよいですか? :

> cat buildout.cfg
[buildout]
parts = django

[django]
recipe = zc.recipe.egg
eggs = django
interpreter = django

>bin/django 

>>> import django
>>> django
<module 'django' from '/usr/lib/python2.6/site-packages/django/__init__.pyc'>
>>> 

/usr/lib/python2.6 にインストールされた卵を使用しないようにビルドアウトを強制する方法はありますか?

4

3 に答える 3

9

include-site-packages次の 2 つのディレクティブのいずれかを使用して、サイト パッケージを使用するかどうかを buildout に伝えることができます。allowed-eggs-from-site-packages

ビルドアウトのドキュメントから:

その後、include-site-packages = false および exec-sitecustomize = false ビルドアウト オプションを使用して、Python のサイト パッケージへのアクセスを排除し、存在する場合はその sitecustomize ファイルを実行しないようにできます。

代わりに、サイトパッケージから来る可能性のある卵のグロブ対応ホワイトリストとして、allowed-eggs-from-site-packages ビルドアウトオプションを使用できます。この値のデフォルトは「*」で、すべての卵を受け入れます。

于 2011-01-30T19:18:12.817 に答える
3

ふたつのやり方:

  • 最新の 1.5.something ビルドアウトを使用してください。デフォルトではシステム パッケージを使用しません。

  • -s フラグを指定してブートストラップ コマンドを実行しますpython bootstrap.py -s。これは、「サイト パッケージなし」を意味します。

于 2011-01-30T19:48:52.820 に答える
0

システムpythonから卵を除外するためのオプションが付属しているビルドアウト1.5の前に使用した1つの代替手段は

virtualenv

環境を作成し、bootstrap.pyをフェッチし、最小限のbuildout.cfgを配置するvirtualenvカスタムブートストラップを作成しますが、virtualenvは通常どおり使用できます。

cd project virtualenv --no-site-packages ./
wget http://...../bootstrap.py 
touch buildout.cfg
source bin/activate
python bootstrap.py
bin/buildout

そして出来上がり、virtualenvで分離されたビルドアウト

于 2011-02-07T19:03:45.267 に答える