setup.pyのentry_point dictを使用してコンソール コマンドをインストールしています。これにより、システム内のパス (たとえば、debian のルートは/usr/local/bin
) に python ファイルが作成されます。このファイルは、システムによって、または virtualenvs を使用する場合に変更できます。
setup.py で entry_points としてインストールされたスクリプトのデフォルト パスが必要です
setup.pyのentry_point dictを使用してコンソール コマンドをインストールしています。これにより、システム内のパス (たとえば、debian のルートは/usr/local/bin
) に python ファイルが作成されます。このファイルは、システムによって、または virtualenvs を使用する場合に変更できます。
setup.py で entry_points としてインストールされたスクリプトのデフォルト パスが必要です
場所は、、、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