我正在使用 setup.py 中的entry_point 字典安装控制台命令。这会在系统的某个路径中创建一个 python 文件(例如,作为 debian 中的 root /usr/local/bin),该文件可以根据系统或您使用 virtualenvs 进行更改。
我需要使用 setup.py 作为 entry_points 安装的脚本的默认路径
我正在使用 setup.py 中的entry_point 字典安装控制台命令。这会在系统的某个路径中创建一个 python 文件(例如,作为 debian 中的 root /usr/local/bin),该文件可以根据系统或您使用 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
get_config_vars如果您需要找到更具体的位置,该dict 可能会很有用:
>>> [(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