Skip to main content
Python Software Foundation 20th Year Anniversary Fundraiser  Donate today!

dumpenv: Dump values of the current Python environment

Project description

dumpenv: Dump values of the current Python environment


Sometimes source code works in one environment, but in a different environment it fails.

Same source code, but different results …. Hmm, there must be a differenence in the environment …. but what?

You can use this tool to dump a lot of values which influence the python interpreter.

Then you can use any diff tool (I like meld) to compare both environments.

At the moment these text files get created:

  • PATH
  • locale
  • os
  • os_environ
  • pip_freeze
  • platform
  • site
  • sys
  • sys_path

I guess the above names do not need any explanation.

Above files get created in a temporary directory which roughly looks like this:


To make the diff easier to read $VIRTUAL_ENV and $HOME get replaced in the output.



dumpenv [-o OUTPUT_DIRECTORY | --output-directory=OUTPUT_DIRECTORY]
dumpenv (-h | --help)


-o --output-directory OUTPUT_DIRECTORY Create text file in this directory.
                                     Or use environment variable DUMPENV_OUTPUT_DIRECTORY



user1@host1> dumpenv
Dumped environment to directory OUT1

user2@host2> dumpenv
Dumped environment to directory OUT2

me@pc> scp -r user1@host1:/tmp/OUT1/ tmp/
me@pc> scp -r user2@host2:/tmp/OUT2/ tmp/
me@pc> meld tmp/OUT1 tmp/OUT2

… Ah! Now you see the difference :-)


Call it from Python like this:

out_dir = dumpenv.create_data_and_dump_it()


Install from pypi:

pip install dumpenv

Use Cases

Use case 1: Your script works, but it does not, if called via unix cron. Run dumpenv via shell and via cron and compare the result.

Use case 2: Your code works via web (wsgi, django, …) but it fails if you call it on the shell.

Use case 3: Your code works in the development environment, but not on the production server.


In my case Python scripts run in different environments:

  • called from PyCharm
  • called from Shell
  • called from Cron
  • called from webserver
  • called from subprocess
  • called from configuration management (for example Ansible)
  • called from systemd

My dream is that the environment from all above calls is equal.

I think this dream will never come true. I think it is better to reduce the above list.



Feedback is very welcome, please create an issue at github or write me an email.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for dumpenv, version 2018.19.0
Filename, size File type Python version Upload date Hashes
Filename, size dumpenv-2018.19.0.tar.gz (5.7 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page