This morning it seems Anaconda Navigator cannot install pyqtgraph. It complains that
CondaHTTPError: HTTP 000 CONNECTION FAILED for url http://pypy.python.org/simple/osx-64/current_repodata.json
Elapsed: -
An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.
‘http//pypy.python.org/simple/osx-64’
And indeed trying to fetch http//pypy.python.org/simple/osx-64 with a browser or curl returns a 403 error.
It seems likely that that is supposed to be pypi.python.org, not pypy.python.org. The former domain is an alias for pypi.org; the latter domain does not exist (PyPI is the Python Package Index; PyPy is a Python interpreter written in Python).
It would seem that someone or something has misconfigured it. As far as I’m aware, .condarc is a user-facing config file, so it would generally be a user or administrator who would have updated it. Even if the URL was correct, I’m not sure conda can consume non-conda package indices like this (but don’t take my word for it).
Correct, I used to administer an Anaconda install for a large enterprise, my most common user issue was users re-configuring their .condarc to point to a Simple Repository API.
Conda was explicitly designed so that all the package dependencies can be read from repository API it uses so it doesn’t have to download a package until it has resolved the dependencies. As the Simple Repository API offers no such functionality it can not be used for conda.
It surprises me that users savvy enough to discover and edit a config file and find and add the correct PyPI API URL would be naive enough to think that it would make Conda magically work with PyPI, not Google it to check, and then surprised and confused when things break. But I’ve seen stranger things, I suppose…
To note, you could use the legacy or PEP 691 JSON APIs for that, at least for packages with static metadata/wheels. Of course, it still wouldn’t work for many other reasons, but that one isn’t necessarily a hard obstacle.
Think about it this way, most users of Python/Anaconda are just trying to get their job done, in fact there’s a high chance they’re not even developers, they could be scientists, analysts, traders, etc.
When users learn to use pip and/or conda their concern isn’t what is a package, what is a repository, how does this config exactly affect their tools, their concern is “does this allow me to do my job by letting me run import <foo> as is in my colleagues code/this web snippet I found/this new tool I want to use”.
Understanding what exactly pip, conda, packages, and repositories are is at best a tertiary concern for most users. They can use these tools for literally years and only have a superficial understanding so they can run the CLI commands and edit the config when they first set it up to “make it work”. But that’s fine most of the time because that is enough to let them get their job done.