How to install dependencies from a copied pipfile inside a virtual environment?

The problem originates when I start by cloning a git project that uses pipenv, so it has a Pipfile + Pipfile.lock. I want to use a virtual environment with the project so I run pipenv shell. I now have a virtual environment created and I am inside the virtual environment. The project obviously has a lot of dependencies (listed in the Pipfile). I don't want to have to go through the list in the Pipfile one by one and install them using pipenv install <package_name>. Is there a pipenv/pip command that installs all the packages from a Pipfile I already have? Or maybe I need to set up the environment differently than running pipenv shell?


The proper answer to this question is that pipenv install or pipenv install --dev (if there are dev dependencies) should be ran. That will install all the dependencies in the Pipefile. Putting the dependencies into a requirements.txt and then using pip will work but is not really necessary. The whole point of using pipenv for most people is to avoid the need to manage a requirements.txt or to use pip.

EDIT: if the virtualenv is already activated, you can also use pipenv sync or pipenv sync --dev for the same effect.


Ideally, you are encouraged to have a requirements.txt file which contains all the packages required for installation via pip. You can create this file by doing:

pip freeze > requirements.txt

You can convert a Pipfile and Pipfile.lock into a requirements.txt. Take a look into this

pipenv lock -r

After that, you can install all your modules in your python virtual environment by doing the following:

pip install -r requirements.txt

Hopefully, I anwered your question.


I had a similar issue. For me, I exited the virtualenv and ran

pipenv --three sync

and it worked.

From what I can understand the idea is to create a new virtual environment using python 3 in my case. If you're using python 2 the above command would be edited to read

pipenv --two

The sync command copies all dependencies from the Pipfile.lock over to the new virtualenv.


use pipenv sync to install all packages specified in Pipfile.lock.