Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Windows reports error when trying to install package using pipenv

Tags:

python

pip

pipenv

I installed pipenv by following the instructions here. From the Windows command prompt I ran

pip install --user pipenv

which returned the message

Successfully installed pipenv-5.3.3

Now I want to install the requests package using pipenv, so I ran

pipenv install requests

but this returned

'pipenv' is not recognized as an internal or external command,
operable program or batch file.

I have added the path

C:\Users\Robert\AppData\Roaming\Python\Python35\site-packages

to my Windows path environment variable, but I still receive the same error. How can I install the requests package using pipenv?


EDIT: As I have remnants of Python 3.5 and Python 3.6 on my system, I'm going to uninstall everything and start anew. (I've just started learning Python and I want to keep this as simple as possible.)

like image 365
Robert Avatar asked Sep 04 '17 17:09

Robert


People also ask

How do I install a package in Pipenv?

Open a console in your project directory and type pipenv install <package_name> to install a package for the project. To specify that the package is for development, use the -d flag. You can use pip syntax to denote a specific version of a package (e.g., black==13.0b1 ).

Does Pipenv work on Windows?

Install pipenv on WindowsIf it shows the following output, then you've successfully installed the pipenv tool successfully. However, if you see the following message: pipenv shell 'pipenv' is not recognized as an internal or external command, operable program or batch file.

How do I know if Pipenv is installed on Windows?

To see installed packages with Pipenv, you can use the pipenv graph command. The output from this is perhaps more verbose than you'd like, but it does contain everything you need.

What is pip install Pipenv?

Pipenv is a dependency manager for Python projects. If you're familiar with Node. js's npm or Ruby's bundler, it is similar in spirit to those tools. While pip can install Python packages, Pipenv is recommended as it's a higher-level tool that simplifies dependency management for common use cases.


Video Answer


3 Answers

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:

  1. First, remove your current version of virtualenv: pip uninstall virtualenv

  2. Then, remove your current version of pipenv: pip uninstall pipenv

  3. When you are asked Proceed (y/n)? just enter y. This will give you a clean slate.

  4. 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!

like image 169
Srivats Shankar Avatar answered Oct 20 '22 04:10

Srivats Shankar


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 re
import sys

from pipenv import cli

if __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 cli

if __name__ == '__main__':
    cli()

Which calls pipenv.cli.cli(). So this main module absolutely does the same effective thing.

like image 31
Tadhg McDonald-Jensen Avatar answered Oct 20 '22 04:10

Tadhg McDonald-Jensen


to solve this problem i need to start my CMD as administrator.

  1. pip uninstall pipenv

  2. pip install pipenv

To test this new configuration, you can write pipenv --version

like image 21
Ousseynou Diop Avatar answered Oct 20 '22 03:10

Ousseynou Diop