I’m trying to create my first python package. To not bungle the whole deal, I’ve been attempting to upload it to the testpypi servers. That seems to go fine (sdist creates and upload doesn’t show any errors). However, when I try to install it to a new virtualenv from https://testpypi.python.org/pypi, it complains about my install requirements, e.g.:
pip install -i https://testpypi.python.org/pypi poirot Collecting poirot Downloading https://testpypi.python.org/packages/source/p/poirot/poirot-0.0.15.tar.gz Collecting tqdm==3.4.0 (from poirot) Could not find a version that satisfies the requirement tqdm==3.4.0 (from poirot) (from versions: ) No matching distribution found for tqdm==3.4.0 (from poirot)
tqdm and Jinja2 are my only requirements. I tried specifying the versions, not specifying—error each way.
It appears that it’s trying to find tqdm and Jinja2 on the testpypi server and not finding them (because they’re only available at regular pypi). Uploading the package to the non-test server and running pip install worked.
What do I need to add to the setup.py file (below) to get it to find the requirements when uploaded to testpypi?
try: from setuptools import setup except ImportError: from distutils.core import setup setup(name='poirot', version='0.0.15', description="Search a git repository's revision history for text patterns.", url='https://github.com/dcgov/poirot', license='https://raw.githubusercontent.com/DCgov/poirot/master/LICENSE.md', packages=['poirot'], install_requires=['tqdm==3.4.0', 'Jinja2==2.8'], test_suite='nose.collector', tests_require=['nose-progressive'], classifiers=[ 'Environment :: Console', 'Intended Audience :: Developers', 'Programming Language :: Python', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5' ], include_package_data=True, scripts=['bin/big-grey-cells', 'bin/little-grey-cells'], zip_safe=False)
PyPI has upgraded its site. According to the docs, the new advice is:
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple poirot
--index-urlpoints to your package on TestPyPI.
--extra-index-urlpoints to dependencies on PyPI.
poirotis your package.
pip install --extra-index-url https://testpypi.python.org/pypi poirot.
See also a reference post.
Trying in Jan 2021, the update in the accepted answer didn’t work for me. This worked:
pip install -i https://test.pypi.org/pypi/ --extra-index-url https://pypi.org/simple <your_package_in_testpypi>
Note that the first URL is
test.pypi.org/pypi, and the second is
Their official page should be updated, its instruction shows:
pip install -i https://test.pypi.org/simple/ <your_package_in_testpypi>
which does not work.