Windows reports error when trying to install package using pipenv
I have a similar setup and faced a similar problem, but the solution I found was fairly simple. All of my PATH variables were already correct (from Python 3 the Windows Installer automatically does all of this).
The problem
The problem actually arises because of conflicting installations of virtualenv.
Fix
To address this problem you need to simply run the following commands:
First, remove your current version of virtualenv:
pip uninstall virtualenv
Then, remove your current version of pipenv:
pip uninstall pipenv
When you are asked
Proceed (y/n)?
just entery
. This will give you a clean slate.Finally, you can once again install pipenv and its dependencies:
pip install pipenv
This will also install the latest version of virtualenv.
Testing if it worked
Just enter pipenv --version
in the command prompt and you should see the desired output.
Notes
I know this sounds the mundane, but it is actually the solution for Windows systems. You do not need to modify any of your system environment variables (please do not add site-packages to your environment variables).
Hope this helps!
python -m pipenv
may work for you, (or python3 -m pipenv
or py 3 -m pipenv
) this is telling python to run the module pipenv
instead of the terminal shortcut which sometimes doesn't install properly.
Just to show they are equivalent when I installed pipenv
and run which pipenv
it points to a file like /Library/Frameworks/Python.framework/Versions/3.6/bin/pipenv
which looks like this:
#!/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6# -*- coding: utf-8 -*-import reimport sysfrom pipenv import cliif __name__ == '__main__': sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) sys.exit(cli())
so it removes .pyw
or .exe
from the executable name then call pipenv.cli.cli()
. It is likely there is a file like this on your machine it just didn't add python's /bin
folder to your system PATH
so it isn't accessible, there is usually a warning when installing python if this happens but no one checks those. :P
the module pipenv.__main__
which is run when using python -m pipenv
looks like this:
from .cli import cliif __name__ == '__main__': cli()
Which calls pipenv.cli.cli()
. So this main module absolutely does the same effective thing.