pysetenv

A simple tool to set environment variables before running a command


Keywords
set, environment, variables, environment-variables, python, utility
License
BSD-3-Clause
Install
pip install pysetenv==1.0.1

Documentation

pysetenv

PyPi version Travis build status Appveyor build status Coverage status

pysetenv is a simple Python-based program to allow users to set environment variables before executing a command, similar to the POSIX env command.

Why?

pysetenv is designed as a support package to help authors of other Python packages create command-line strings like you'd expect from sh or the env command. Generally, pysetenv will only be installed on Windows systems, with POSIX systems using sh or env. For example, in your setup.py, you would write:

setup(
    # ...
    install_requires=['pysetenv;platform_system=="Windows"'],
)

Then somewhere in your code, you could call pysetenv:

subprocess.call(['pysetenv', ...])

Command-line reference

Usage: pysetenv [OPTION]... [NAME=VALUE]... [--] [COMMAND [ARG]...]

pysetenv supports a subset of common options available to various implementations of env. It executes COMMAND with any supplied arguments (ARG) after modifying the environment as specified by the previous arguments. Any arguments of the form NAME=VALUE will set an environment variable NAME to the value of VALUE. If COMMAND is not specified, pysetenv will print the resulting environment instead.

In addition, the following options are supported:

  • -i: Ignore any environment variables inherited by this process
  • -u NAME: Unset the environment variable NAME
  • -h, --help: Show a help message and exit
  • --version: Show the current version and exit

As an extension to the env command, the options above and the variable definitions can be separated from the section for defining the command to run with --:

pysetenv -uFOO BAR=value -- echo hello

License

This project is licensed under the BSD 3-clause license.