【发布时间】:2018-05-06 22:15:27
【问题描述】:
我的 Python 模块包含一个用户可以从命令行执行的外部脚本。我希望用户能够一次性安装 Python 模块和脚本。使用 setuptools,我尝试添加:
scripts=['bin/mybin']
这几乎可以解决问题。它没有将mybin 添加到用户的PATH 中,而是添加了一个调用mybin 的小脚本:
#!/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
# EASY-INSTALL-SCRIPT: 'myscript==2.0.4','mybin'
__requires__ = 'myscript==2.0.4'
__import__('pkg_resources').run_script('myscript==2.0.4', 'mybin')
这种间接导致了一些问题,尤其是在执行脚本时会出现小延迟(与将mybin 直接复制到 PATH 相比)。
有没有办法让 setuptools 将脚本直接复制到 PATH 而不是让它间接调用我的脚本?
我的第一个想法是编写一个自定义的post-install 函数来将脚本复制到用户的路径中。但是,如果有办法在 setuptools 中本地执行此操作,我会更喜欢。
【问题讨论】:
标签: python setuptools