将setuptools CLI打包为可执行文件

时间:2020-03-31 23:25:52

标签: python command-line-interface setuptools egg

我有一个带有以下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 ")")。我不太确定该从何而来-我已在此搜索说明,但似乎无济于事。

1 个答案:

答案 0 :(得分:0)

使用pip install。然后将其复制到生成的/path/to/venv/bin/importdb脚本中,然后复制到您想要的任意位置(可能在PATH上的某个位置,例如.local/bin/importdb)。只要 venv 停留在文件系统上的同一位置,它就可以正常工作,因为importdb脚本具有完整路径/path/to/venv/bin/python作为其{{3} }。否则,请查看诸如shebangpexshiv之类的内容。