Имеются параметры игнорирования Python argparsePython

Программы на Python
Anonymous
Имеются параметры игнорирования Python argparse

Сообщение Anonymous »

У меня есть проект Python с несколькими параметрами командной строки (argparser), которые работают. Я изменил аргумент --scan, чтобы он принимал целое число, и теперь некоторые параметры не принимаются с ошибкой:

Код: Выделить всё

error: unrecognized arguments: --radio airspy --scan
Они также не отображаются, когда я запускаю myproject -h, несмотря на то, что они присутствуют в коде как параметры аргумента.
Это началось когда я создал проблему на GitHub для своего проекта, а затем новую ветку, основанную на этой проблеме. Я проверил эту ветку на VSCode, чтобы добавить в argparser целочисленную опцию для --scan.
Чтобы выявить причину, я затем попытался проверить ранее работающая ветка, и теперь она тоже получает ошибку нераспознанных аргументов.
Я пробую команду myproject --radio airspy --center-freq 160500000 --carrier 160380123 --scan
Мой полный код анализатора аргументов находится здесь:

Код: Выделить всё

    p = argparse.ArgumentParser()
p.add_argument(
"-f",
"--from-file",
dest="infile",
help="Read samples from the given filename and process them",
)
p.add_argument(
"-db",
"--database",
dest="db",
default=None,
help="SQLite database where to store processed results. Defaults to `main.db`. Environment variable KIWITRACKER_DB has priority.",
)

p.add_argument(
"-d",
"--delete-database",
dest="deletedb",
action="store_true",
help="If SQLite database file exists upon start, it is deleted.",
)

p.add_argument(
"-o",
"--outfile",
dest="outfile",
help="Read samples from the device and save to the given filename",
)
p.add_argument(
"-m",
"--max-samples",
dest="max_samples",
type=int,
help='Number of samples to read when "-o/--outfile" is specified',
)
p.add_argument(
"--scan",
dest="scan",
action="store_true",
help="Scan for frequencies in first 3sec",
)
p.add_argument(
"--no-use-gps",
dest="no_use_gps",
action="store_true",
help="Set this flag to not use GPS module",
)
p.add_argument(
"--radio",
default="rtl",
const="rtl",
nargs="?",
choices=["rtl", "airspy", "dummy"],
help="type of radio to be used (default: %(default)s), ignored if reading samples from disk.",
)

s_group = p.add_argument_group("Sampling")
s_group.add_argument(
"-c",
"--chunk-size",
dest="chunk_size",
type=int,
default=SampleConfig.read_size,
help="Chunk size for sdr.read_samples (default: %(default)s)",
)
s_group.add_argument(
"-s",
"--sample-rate",
dest="sample_rate",
type=float,
default=SampleConfig.sample_rate,
help="SDR sample rate (default: %(default)s)",
)
s_group.add_argument(
"--center-freq",
dest="center_freq",
type=float,
default=SampleConfig.center_freq,
help="SDR center frequency (default: %(default)s)",
)
s_group.add_argument(
"-g",
"--gain",
dest="gain",
type=float,
default=SampleConfig.gain,
help="SDR gain (default: %(default)s)",
)
s_group.add_argument(
"--bias-tee",
dest="bias_tee",
action="store_true",
help="Enable bias tee",
)

s_group.add_argument(
"-log", "--loglevel", default="warning", help="Provide logging level.  Example --loglevel debug, default=warning"
)

p_group = p.add_argument_group("Processing")
p_group.add_argument(
"--carrier",
dest="carrier",
type=float,
nargs="?",
const=ProcessConfig.carrier_freq,
# default=ProcessConfig.carrier_freq,
help="Carrier frequency to process (default: %(default)s)",
)

args = p.parse_args()
И если я попробую myproject -h, в выводе не будет нескольких параметров:

Код: Выделить всё

$ myproject -h

usage: myproject [-h] [-f INFILE] [-o OUTFILE] [-m MAX_SAMPLES] [-c CHUNK_SIZE] [-s
SAMPLE_RATE] [--center-freq CENTER_FREQ] [-g GAIN] [--bias-tee] [--carrier CARRIER]

options:
-h, --help            show this help message and exit
-f INFILE, --from-file INFILE
Read samples from the given filename and process them
-o OUTFILE, --outfile OUTFILE
Read samples from the device and save to the given filename
-m MAX_SAMPLES, --max-samples MAX_SAMPLES
Number of samples to read when "-o/--outfile" is specified

Sampling:
-c CHUNK_SIZE, --chunk-size CHUNK_SIZE
Chunk size for sdr.read_samples (default: 65536)
-s SAMPLE_RATE, --sample-rate SAMPLE_RATE
SDR sample rate (default: 1024000.0)
--center-freq CENTER_FREQ
SDR center frequency (default: 160270968)
-g GAIN, --gain GAIN  SDR gain (default: 7.7)
--bias-tee            Enable bias tee

Processing:
--carrier CARRIER     Carrier frequency to process (default: 160270968)
Это похоже на опцию конфигурации. Установлен VSCode 1.89, и я работаю в Windows 10, но редактирую код на удаленном RaspPi через оболочку ssh из VS Code.
Я сохранял проект несколько раз.

Подробнее здесь: https://stackoverflow.com/questions/785 ... ns-present

Вернуться в «Python»