Is PyPI case sensitive?

2019-04-03 03:08发布

问题:

How does PyPI handle case sensitivity?

For example, this SO question documents PyPI refusing a new package foobar if FooBar already exists.

Running pip against pypi.python.org seems to convert to the canonical case for a package:

$ pip install django
Downloading/unpacking django
  Downloading Django-1.7.tar.gz (7.5MB): 7.5MB downloaded

Alternatively:

$ pip install Django
Downloading/unpacking Django
  Downloading Django-1.7.tar.gz (7.5MB): 7.5MB downloaded

However, only some files seem to be in the canonical case in my virtualenv:

$ ls ~/pyenvs/test_venv/lib/python2.7/site-packages/ | grep -i django
django/
Django-1.7-py2.7.egg-info/

What does the XML-RPC API expect? Can I always assume that http://pypi.python.org/simple/foo and http://pypi.python.org/simple/FoO will both return HTTP 200?

Is PyPI's position on case-sensitivity documented anywhere?

回答1:

No, pip is case insensitive.

All comparisons of distribution names MUST be case insensitive, and MUST consider hyphens and underscores to be equivalent.

from PEP 426



标签: python pypi