A clear description of the bug
When installing using pipenv --pre prefect[all_extras] I get an error. The error is pipenv.patched.notpip._internal.exceptions.InstallationError: Command "python setup.py egg_info" failed with error code 1 in C:...psycopg2-binary.
What did you expect to happen instead?
I would expect to be able to install all extras. I am able to do it using pip install prefect[all_extras]. I believe that psycopg2-binary is for unix based systems while psycopg2 is for Windows environments.
A minimal example that exhibits the behavior.
pipenv --pre prefect[all_extras]
Any additional information about your environment
Running on Windows Server 2016. 8GB ram and 2 cores.
Optionally run prefect diagnostics from the command line and paste the information here
cc @lauralorenz or @cicdw
@mark-w-325 good find and thanks for identifying the root issue - we should be able to update the logic within setup.py here relatively easily.
One thing I do want to call out is that because Prefect interacts with such a diverse set of third party libraries, in general we probably can't guarantee that all_extras to always be Windows compatible.
Hi! I got a chance to play with this today. I could reproduce on a vanilla install from python.org of python 3.8.3 (prefect[all_extras] installed fine with the Anaconda distribution of python, even using pipenv, which is interesting and implies this is not specifically a Windows problem).
That being said I think this is actually a problem with spacy based on the verbose output from pipenv install --pre --verbose prefect[all_extras].
I can get better output by trying each of those dependencies themselves:
pipenv install --pre --verbose spacy throws the same error
pipenv install --pre --verbose psycopg2-binary installs fine with no errors
The bad logs from spacy and prefect[all_extras] I've only provided the tail end of because they were very long, but here is a gist with all of those logs: https://gist.github.com/lauralorenz/7820665bf20d8cb4d309abba0a874240
Since spacy is the one that doesn't install with at least this pipenv/windows/vanilla Python combination, and we don't have an alternative to install instead that works in this particular situation, I think this gets closed on our side as an upstream problem with spacy. Closing now but let me know if anyone has another idea of how we want to handle this.