Pipenv
Why
I have really grown to like the Pipefile
and Pipfile.lock
solution for managing Python packages. Also, it uses the .python-version
to pick the Python version you have installed with some light testing.
Basic patterns
When ever I start a new project, I use the following commands to initialize a new project to install the version (only done once if a new
version), switch to global once, install pipenv
, then nail down the version to the project to create the .python-version
file and
use pipenv
locally to manage the packages stamped in the Pipfile
and Pipfile.lock
.
# if a new version
# this is done once
pyenv install #.#.#
pyenv global #.#.#
pip install pipenv
# after install
pyenv local #.#.#
pipenv install package-name
pipenv install dev-tool --dev
Version not found
This usually means you just need to update pyenv. Upgrading pyenv is really easy when you are using the method of installing from the git repo. This is the main reason why I dont use brew install pyenv
but rather just use the git clone to your ~/.pyenv
directory.
To upgrade:
cd ~/.pyenv
git pull origin master
Once this is done, you should see updated list of versions available to install when running:
pyenv install --list
What I found
Over time I have gathered these possible solutions to fixing some issues with Pipenv
.
Stuck inside a virtualenv
- Problem
A virtualenv follows you around everywhere, but you are not in one.
- Possible Solutions
unset VIRTUAL_ENV
Pipenv says you are using wrong version
- Problem
Pipenv says you are using the wrong version of Python.
- Possible Solutions
- Nail down the Python version
- I use
pyenv local #.#.#
that creates a.python-version
file cd ..
then return withcd -
to load the.python-version
file
- I use
- Kill the pipenv virtualenv
pipenv --rm
- rebuild with
pipenv install