【问题标题】:How can I have my python scripts installed to a /bin folder for CLI usage with a setup.py?如何通过 setup.py 将我的 python 脚本安装到 /bin 文件夹以供 CLI 使用?
【发布时间】:2017-07-17 17:39:54
【问题描述】:

在阅读了python文档后,我仍然无法弄清楚。

setup.py and adding file to /bin/

我还阅读了那篇文章,但没有帮助澄清我的情况

首先这是我的文件结构,只是为了让您清楚地了解我要做什么

setup.py    
setup.cfg
MANIFEST.in
README.md    
requirements.txt
graphite/
- generate_report.py    
- capture.js    
- templates/
- - pretty much a bunch of JS/HTML/CSS files that get used by generate_report.py

如您所见,generate_report.py 是我唯一的 python 文件,当用户使用我的包运行“pip install”时,我试图将它链接到 /bin 文件夹。 generate_report 但是需要拥有(我可以在代码中更改它)capture.js(只是一个 phantomjs 文件,我使用 python 子进程运行文件)和同一目录中的模板文件夹以运行它(我假设最好将文件链接到 /bin 文件夹,我也假设 setup.py 会为您执行此操作)。

这是我的 setup.py 代码

from distutils.core import setup
setup(
  name = 'graphite-analytics',
  packages = ['graphite'],
  version = '0.1.1',
  description = 'Create a print-out template for your google analytics data',
  author = 'NAME REDACTED',
  author_email = 'EMAIL-REDACTED',
  url = 'https://github.com/ARM-open/Graphite',
  download_url = 'https://github.com/ARM-open/Graphite/archive/0.1.1.tar.gz',
  keywords = ['Google analytics', 'analytics', 'templates'], 
  classifiers = [],
  install_requires=['Click', 'google-api-python-client', 'jinja2'],
  entry_points={'console_scripts': [
    'graphite-analytics=graphite.generate_report:main'
  ]}
)

还有我的 MANIFEST.in 文件,以备不时之需

recursive-include graphite/templates *
include graphite/capture.js

我知道我的 setup.py 中运行了 console_scripts,但我对如何使用它感到很困惑(不确定我是否正确使用它)。我已经阅读了 python 文档,我的主要功能几乎可以处理其中的大部分内容。

【问题讨论】:

  • @FilipAllberg 所以这实际上是我遵循的指南之一。如果您查看我的 entry_points 并将其与他的进行比较,它们的设置方式相同

标签: python command-line-interface


【解决方案1】:

所以我将 generate_report 重命名为石墨,现在它可以工作了!(检查我的 setup.py 并在入口点中看到)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 2017-09-03
    • 2021-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    相关资源
    最近更新 更多