【问题标题】:Package setuptools CLI into an executable [duplicate]将 setuptools CLI 打包成可执行文件 [重复]
【发布时间】:2020-07-12 15:28:31
【问题描述】:

我有一个带有以下 setup.py 的 Python3 CLI(使用 Click):

from setuptools import setup, find_packages

setup(
    # ...
    entry_points='''
        [console_scripts]
        importdb=scripts.importdb:cli
    ''',
)

如果我执行pip install -e .,这将有效:我可以从命令行运行importdb ...。我怎样才能把它打包成一个可执行文件,可以在没有pip install -e的情况下运行?

我试过python setup.py bdist_egg,它会生成一个egg文件,但尝试执行它会得到Syntax error: word unexpected (expecting ")")。我不太确定从这里去哪里 - 我已经搜索过这方面的说明,但似乎没有任何效果。

【问题讨论】:

  • @phd 谢谢!我确实看到了这个问题,但它并没有完全回答我的问题。该问题涉及将给定的 .py 文件作为独立的可执行文件运行。我有一个 python 包,其入口点在 setup.py 中声明,我希望这些入口点通过可执行文件公开。

标签: python command-line-interface setuptools egg


【解决方案1】:

使用pip install。然后将生成的/path/to/venv/bin/importdb 脚本复制到您想要的任何位置(可能在您的PATH 上的某个位置,例如.local/bin/importdb)。只要 venv 位于文件系统上的相同位置,它应该可以正常工作,因为 importdb 脚本将完整路径 /path/to/venv/bin/python 作为其 shebang。否则请查看pexshivzipapp 之类的内容。

【讨论】:

    猜你喜欢
    • 2011-11-25
    • 2015-11-16
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    • 2013-06-15
    相关资源
    最近更新 更多