でentry_pointsとしてインストールスクリプトのデフォルトのパスを必要とします。
スクリプトがすでに存在する場合は、最良の方法は、それが(which
コマンドなど)の実行可能ファイルを探して、$PATH
に内容上を走査することであろう検索するが、これはあなたが
後にしているものではないかもしれません
distutils.sysconfigモジュールが役立つ可能性があります。
例えば
pyflakes
は私が
pip install pyflakes
を実行する場合は、より具体的な場所を見つける必要がある場合get_config_vars
辞書は役に立つかもしれない終わる、ディレクトリである..which
$ 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
:
>>> [(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-20 07:58:19
dbr
あなたはあなたが求めていることをより明確にすることができますか?ここでうまく形成された質問は表示されません。 – Paragon
多分あなたの他の答えのいくつかを受け入れることができますか? Bye – jdi
setup.pyでは、console_commandをentry_point(http://packages.python.org/distribute/setuptools.html#automatic-script-creation)として記述することができます。このコマンドは、システム内のあるパスに作成されています。 '/ usr/local/bin /'であると仮定せずにそのパスをチェックする方法があるかどうかを知るためには、パッケージをvirtualenvの中にインストールすると別のパスに置かれます。 –