问题标签 [python-click]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 为什么我对 click.argument 的使用会产生“得到一个意外的关键字参数‘帮助’?
运行以下代码会导致此错误:
TypeError:init()得到了一个意外的关键字参数“帮助”
代码:
完整的错误输出:
为什么会出现这个错误?
python - How to share a variable globally in python program?
I'm working on a program which has a config. I need to use a different config for the tests and the normal running of the program.
I manage all the software and tests using a manage.py
script and all the tests are under python manage.py test ...
(eg: python manage.py test all
, python manage.py test db
, ...)
To choose the config I did in the __init__.py
of the config:
and after I import the config from this file.
But sometime the test runner takes the first place in the argv so the test is in argv[2] or sometimes I run the tests by launching the script directly and not the manage.py
.
My question is by which ways can I share a variable across the full codebase?
Thanks.
python - 将彩色右对齐文本输出到终端
我想在终端中输出与右侧完全对齐的彩色文本(如 pacman 的截图(arch linux 发行版的数据包管理器)(未着色))
目前我正在使用format
:
这很好用,直到我通过 ANSI 转义码添加颜色:
即右侧不完全右对齐。哪个是“正确的”,因为right
实际上\\x1b[32mbar\\x1b[0m
哪个当然具有更高的长度bar
,因此需要更少的空间来右对齐。直到终端得到文本并且只显示bar
(带颜色)。
我是否遗漏了 python std lib 中的任何内容或单击?或者是否有一个处理终端颜色和对齐的简单库可以帮助我?或者这个问题有简单的解决方案吗?
python - Python 单击与选项关联的帮助字符串中的错误
我正在尝试学习如何使用 Python-click。我无法将帮助参数与我的一个选项一起使用,所以我最终放弃并更改了代码以不包含该选项的帮助。然而,尽管关闭并重新启动 Python 并且现在重新启动我的计算机,与尝试使用帮助参数相关的错误消息仍然出现。
代码:
最初用于我拥有的最后一个 @click.option
我不断收到一条错误消息,我无法解决与未知参数帮助有关的问题。我放弃了它,改为上面的内容,现在我遇到了类似的错误,
然后我关闭了 Python,我关闭了我的模块,然后重新启动 Python 打开并再次运行我的代码,但仍然收到此错误消息
追溯:
所以然后我关闭了 Python Idle,我保存并关闭了我的代码,然后重新启动了 Python,重新打开了我的代码,但我仍然得到相同的回溯,除了注意到回溯有我在猛烈撞击后切换到的代码行监视器和放弃
我正准备重新启动,但对原因非常好奇。
我重新启动,但仍然收到相同的错误
重命名文件并再次运行并没有改变结果 - 相同的回溯
python-3.x - python3的编码问题并单击包
当 libclick
检测到运行时是 python3 但编码是 ASCII 时,它会突然结束 python 程序:
我发现了这个问题的原因,当我从我的 Mac 连接到我的 Linux 主机时,Terminal.app 将 SSH 会话区域设置设置为我的 Mac 区域设置 (es_ES.UTF-8) 但是我的 Linux 主机尚未安装这样的语言环境(仅限 en_US.utf-8)。
我应用了一个初步的解决方法来修复它(但它有很多问题,请参阅接受的答案):
编辑:要获得更好的补丁,请参阅我接受的答案。
我所有的 linux 主机都安装了“en_US.utf-8”作为语言环境(Fedora 使用它作为默认设置)。
我的问题是:是否有更好(更强大)的方式来选择/强制 python3 脚本中的语言环境?例如,设置系统中可用的语言环境之一。
也许有一种不同的方法来解决这个问题,但我没有找到它。
python - 是否可以在基于 Click 的界面中为所有子命令添加全局参数?
我在 virtualenv 下使用 Click 并使用entry_point
setuptools 中的指令将根映射到一个名为 dispatch 的函数。
我的工具公开了两个子命令serve
,并且config
我使用顶级组上的一个选项来确保用户始终传递--path
指令。然而,使用结果如下:
theserve
和config
sub 命令都需要确保用户始终传递路径,理想情况下,我希望将 cli 呈现为:
当前基于 Click 的实现如下:
如果不向每个子命令添加路径参数,这可能吗?
python - 使用 Python 的 Click 库将命令行选项的值保存在对象中
我想用 Python 的Click 库解析一些命令行参数,并将提供的值保存在一个对象中。
我的第一个猜测是这样做:
但是,这不起作用,而是我得到:
显然,传递self
给装饰函数不是正确的方法。如果我self
从方法参数中删除,那么我可以这样做print(myoption)
,它将打印在屏幕上,但我的类5
的任何实例都不会知道该值。Configuration()
处理这个问题的正确方法是什么?我认为它与Click 中的上下文处理有关,但我无法根据提供的示例使其正常工作。
python - 通过单击将未知标志传递给命令行
问题
使用python click 库创建命令行工具时,是否可以将未知数量的参数传递给函数?我正在考虑类似于 *args 命令的东西。
用例
我正在尝试为catkin构建一个包装器,并希望将 click 用于它附带的所有不错的实用程序。在使用指定命令调用 catkin 之前,此应用程序应该执行一些任务,例如切换到工作空间的根目录。例如catkin build
编译代码。这样做的问题是,我不想显式声明可以传递给 catkin 的每个可能的编译标志,而是只想查看实际命令并将所有参数直接传递给 catkin。
例子
到目前为止,我发现可以使用选项定义最后一个参数,该选项nargs=-1
将收集此变量中的所有后续参数。通过这种方式,您可以收集例如几个文件名。这几乎是我正在寻找的,除了它不会接受以 dash 开头的标志-
。它会从一个错误说Error: no such option: -a
python - python-click:添加修改其他参数行为的选项
这个问题是关于点击包的:
Click 是一个 Python 包,用于以可组合的方式使用尽可能少的代码创建漂亮的命令行界面。它是“命令行界面创建工具包”。它是高度可配置的,但带有开箱即用的合理默认值。
它旨在使编写命令行工具的过程变得快速而有趣,同时还防止因无法实现预期的 CLI API 而导致的任何挫败感。
我想click.Option
在 my中添加一个click.Command
,这会改变该命令的其他参数的行为。考虑以下示例:
如果cli_a
在没有明确指定x
的情况下调用,则会提示用户提供一个值(或使用 ENTER 确认默认值)。如果cli_b
在不指定x
默认值的情况下调用,则在不提示用户的情况下使用。
我现在想添加一个标志click.Option
,允许用户在上述变体之一之间进行选择(在运行时)。因此,调用cli_c --i
的行为类似于cli_a
,调用cli_c
的行为类似于cli_b
.
这对当前的 API 可行吗?可行吗?
类似的用例类似于anwser-all-confimation-prompts-with-yes标志。通常,如果 cli 工具应该由用户交互使用,并且通过脚本或类似的东西在自动化模式下使用,通常会出现这种情况。