pypa/pip · error · CommandError

You need to specify exactly one argument

Error message

You need to specify exactly one argument

What it means

Raised by IndexCommand.get_available_package_versions ('pip index versions') when the number of positional arguments is not exactly one. The subcommand queries available versions for a single package, so zero or 2+ tokens are rejected at index.py:124-125.

Source

Thrown at src/pip/_internal/commands/index.py:125

        # Pass allow_yanked=False to ignore yanked versions.
        selection_prefs = SelectionPreferences(
            allow_yanked=False,
            release_control=options.release_control,
            format_control=options.format_control,
            ignore_requires_python=ignore_requires_python,
        )

        return PackageFinder.create(
            link_collector=link_collector,
            selection_prefs=selection_prefs,
            target_python=target_python,
            uploaded_prior_to=options.uploaded_prior_to,
        )

    def get_available_package_versions(self, options: Values, args: list[Any]) -> None:
        if len(args) != 1:
            raise CommandError("You need to specify exactly one argument")

        target_python = cmdoptions.make_target_python(options)
        query = args[0]

        with self._build_session(options) as session:
            finder = self._build_package_finder(
                options=options,
                session=session,
                target_python=target_python,
                ignore_requires_python=options.ignore_requires_python,
            )

            versions: Iterable[Version] = (
                candidate.version for candidate in finder.find_all_candidates(query)
            )

            if self.should_exclude_prerelease(options, canonicalize_name(query)):
                versions = (

View on GitHub (pinned to d7d0d0a394)

Solutions

  1. Pass exactly one package name: 'pip index versions numpy'.
  2. Loop for multiple packages: for p in a b; do pip index versions '$p'; done.
  3. Quote any token that might expand.

Example fix

// before
pip index versions
// after
pip index versions numpy
Defensive patterns

Strategy: validation

Validate before calling

if len(packages) != 1:
    raise SystemExit("'pip index versions' needs exactly one package name")

Prevention

When it happens

Trigger: Running 'pip index versions' with no package, or 'pip index versions pkg1 pkg2' with multiple packages. A shell glob expanding to several names also triggers it.

Common situations: Forgetting the package name; batching multiple packages (unsupported); a variable that expanded to empty or to multiple tokens.

Related errors


AI-assisted analysis of pypa/pip@d7d0d0a394 (2026-08-04). Data as JSON: /data/errors/ed4cb24b9706657c.json. Report an issue: GitHub.