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
- Pass exactly one package name: 'pip index versions numpy'.
- Loop for multiple packages: for p in a b; do pip index versions '$p'; done.
- 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
- Pass exactly one package; loop for multiple.
- Quote tokens that may expand via shell globbing.
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
- Got unexpected number of arguments, expected {n}. (example:
- Too many arguments
- Need exactly one file to operate upon (--user, --site, --glo
- --require-hashes and --no-require-hashes are mutually exclus
- You must give at least one requirement to {name} (maybe you
AI-assisted analysis of pypa/pip@d7d0d0a394 (2026-08-04).
Data as JSON: /data/errors/ed4cb24b9706657c.json.
Report an issue: GitHub.