- State “DONE” from “TODO”
- Multiple terminal windows for the following helpers:
Rebuilding a virtual environment
One of the great things about
pipenv is that it makes virtual environment
management relatively brainless. For example, here’s how I rebuild a “clean”
# Assuming that you're within the "broken" virtualenv shell exit pipenv --rm pipenv --python <path to python interpreter in your pipfile> pipenv install pipenv install --dev pipenv shell
Creating a New Project
Assuming that your project does not yet have a Pipfile, here’s how I create one:
pipenv --python <path to preferred python interpreter> pipenv install --dev pytest jedi autopep8 yapf flake8
Solving PYTHONPATH Issues
I had an issue lately where a Python script in a virtualenv was not using the versions of the libraries that were installed in that virtualenv. Here’s some tips that I learned when debugging the issue.
Checking The Instance Of Python Being Executed
First, are you sure that you’re running the Python executable that you think you’re running?
The proper version of Python may not be executed just because you’re running a script within virtualenv. This is easy to test by simply checking the process table. Also, you can try prepending your script like this:
python -m your-script.py
This was my big mistake the last time I had PYTHONPATH issues. After checking the version of Python that was running when I executed my script I noticed that it was from a completely different virtualenv.
Checking The Loaded Libraries At Runtime
If you’d like to see what libraries are being loaded and from where, simply prepend the following to the command that you run to execute your Python script:
python -v -m your-script.py
Checking The Library Version In The REPL
Of course, you can also check library versions in the Python REPL like so:
python -c "import robot; print(robot.__version__)"
Setting Up A Development Environment On Windows
The only tool that changes on Windows is my terminal editor. My
Cmder Fulent Terminal running a Powershell instance.
This works pretty well for me but I learned a few lessons when setting this up:
sniffer Isn’t Usable on Windows
Sniffer hung for me every time I tried to kill it and it wasn’t able to see when
a file was changed, even after I install
I ended up using py.test instead and am very happy with the results.
Jedi’s A Little Funny
I’ve had issues starting the jedi server automatically, so I always run this command if I’m going to be working on some Python code:
pipenv has made things a lot easier to configure Emacs as my Python IDE. Here’s
As long as I’m using
pipenv.el then this configuration is pretty