1

setup.pyのentry_point dictを使用してコンソール コマンドをインストールしています。これにより、システム内のパス (たとえば、debian のルートは/usr/local/bin) に python ファイルが作成されます。このファイルは、システムによって、または virtualenvs を使用する場合に変更できます。

setup.py で entry_points としてインストールされたスクリプトのデフォルト パスが必要です

4

1 に答える 1

1

場所は、、、setup.pyなどのへのさまざまな引数によって異なります。--home--user--prefix--install-scripts

スクリプトが既に存在する場合、それを見つける最善の方法は、 の内容をスキャンして$PATH実行可能ファイル (whichコマンドなど) を探すことですが、これは求めているものではない可能性があります。

distutils.sysconfigモジュールの方が役立つ場合があります。

$ export WORKON_HOME='/tmp/so'
$ mkvirtualenv blah
$ python
Python 2.7.2
>>> import os
>>> import distutils.sysconfig
>>> pre = distutils.sysconfig.get_config_var("prefix")
>>> bindir = os.path.join(pre, "bin")
>>> print bindir
/tmp/so/blah/bin

..これは、たとえば、pyflakes実行した場合に終了するディレクトリですpip install pyflakes

dictはget_config_vars、より具体的な場所を見つける必要がある場合に役立ちます。

>>> [(k, v) for (k, v) in distutils.sysconfig.get_config_vars().items() if "/tmp/so" in str(v)]
[('prefix', '/private/tmp/so/blah'), ('exec_prefix', '/private/tmp/so/blah')]

sysこれらの変数の一部には、モジュールをsys.prefix介してより便利にアクセスできます。sys.execprefix

于 2012-03-20T07:58:19.983 に答える