python - 如何将入口点/控制台脚本添加到使用参数的 setup.py

标签 python package setuptools setup.py distutils

我想向 setup.py 添加一个入口点并传入一个参数。这可能吗?如果可能的话,如何实现?我已经尝试过,并查找了文档,但不知道该怎么做。

示例:包格式:

mypackage/
   setup.py
   mypackage/
      __main__.py

ma​​in.py 包含:

def main(print_me=False):
    if print_me:
       print("test")

setup.py 包含如下所示的控制台脚本:

entry_points={
        'console_scripts': [
            'test = mypackage.__main__:main(print_me=True)'
         ]}

这似乎不起作用,如果有的话,正确的方法是什么?

最佳答案

根据setuptools' documentation on "Automatic Script Creation"这是不可能的:

The functions you specify are called with no arguments

或者你可以做这样的事情:

__main__.py中:

def main_true():
    return main(print_me=True)

setup.py中:

entry_points={
    'console_scripts': [
        'test = mypackage.__main__:main_true'
     ],
},

但在这种特殊情况下,由于 True 已经是参数 print_me 的默认参数,这可能没有必要,并且更改 'test = mypackage. __main__:main(print_me=True)''test = mypackage.__main__:main' 应该足够了。

关于python - 如何将入口点/控制台脚本添加到使用参数的 setup.py,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60423459/

相关文章:

python - 如何使用 alembic/SQLAlchemy 将表对象实例化为 bulk_insert 行

python - 使用 Python 更新之前打印的行(在 CLI 中)?

c# - 在 .NET C# 中集成 Python 脚本

java - 如何在 Android 应用程序中获取包内的文件

python - 执行 `setup.py test`时不安装依赖

python - 包的正确 Python 项目结构

python - 如何转义 MANIFEST.in 文件中目录名称中的空格?

python - 如何将 django-avatar 与我自己的用户模型一起使用,而不是与 django.contrib.auth.models.User 一起使用

java - 具有包访问权限的跨包继承(默认访问权限)

go - goimports 未检测到本地包