How to fix 'Could not find a version that satisfies the requirement' for install_requires list when pip installing in custom package?
You didn't show how your pip install
-ing your package, but I'm guessing you're using something like:
pip install your_project --index-url https://test.pypi.org/simple
The issue is that TestPyPI doesn't contain copies of your dependencies that exist on PyPI. For example:
- Exists: https://pypi.org/project/psycopg2-binary/2.8.4/
- Does not exist: https://test.pypi.org/project/psycopg2-binary/2.8.4/
You can configure pip to fall back on TestPyPI when a package is missing instead by specifying --extra-index-url
instead:
pip install your_project --extra-index-url https://test.pypi.org/simple
Josh
Updated on June 08, 2022Comments
-
Josh almost 2 years
I am trying to build my own Python package (installable by pip) using the twine package. This is all going well right up until the point where I try to pip install my actual package (so after uploading to PyPi).
So I first run:
python3 setup.py sdist bdist_wheel
In which my setup.py
install_requires
list looks like this:install_requires=[ 'jupyter_kernel_gateway==2.4.0', 'pandas==1.0.2', 'numpy==1.18.1', 'azure-storage-blob==2.0.1', 'azure-datalake-store==0.0.48', 'psycopg2-binary==2.8.4', 'xlsxwriter==1.2.6', 'SQLAlchemy==1.3.12', 'geoalchemy2==0.6.3', 'tabulate==0.8.2', 'pyproj==1.9.6', 'geopandas==0.4.0', 'contextily==0.99.0', 'matplotlib==3.0.2', 'humanize==0.5.1', 'ujson==1.35', 'singleton-decorator==1.0.0', 'dataclasses==0.6', 'xlrd==1.2.0'],
In my understanding, these install_requires would be installed by pip when installing my own package.
After this I run
python3 -m twine upload --repository testpypi dist/*
To actually upload my package to PyPi. However, when pip installing my package, I get errors that say there are no versions that satisfy the requirements for a lot of the listed requirements. E.g.:
ERROR: Could not find a version that satisfies the requirement psycopg2-binary==2.8.4
When I manually install these packages (e.g.
pip install psycopg2-binary==2.8.4
), they do get installed.Is there any way to make the pip install of my package actually install the
install_requires
requirement list succesfully? -
SKG about 3 yearsThanks. I was struck using --index-url where I should have been using --extra-index-url.