• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
PythonForBeginners.com

PythonForBeginners.com

Learn By Example

  • Home
  • Python Tutorial
  • Python Basics
  • Python Code Examples

 

You are here: Home / Code Snippets / How to use Envoy

How to use Envoy

Last Updated: August 27, 2020

About Envoy

Recently I stumble upon Envoy. Envoy is a wrapper around the subprocess module and
is supposed to humanize subprocess of Python.

Its written by Kenneth Reitz (the author of “Requests: HTTP for Humans“)

Why use Envoy?

It was written to be an easy to use alternative to subprocess.

“Envoy: Python Subprocesses for Humans.”

Install Envoy

Envoy is available from PyPI and can be installed with pip.

Search for the Envoy package via the pip command-line tool.

pip search envoy

” envoy – Simple API for running external processes. “Install Envoy

$ pip install envoy

Import Envoy

Just like with any other Python modules, we have to import them first.

Start your Python interpreter and type “import envoy”

import envoy

Great, Envoy is imported, now we can start to discover its functions etc.

Envoy Methods and Attributes

After you have imported a module in Python, it’s always good to see what functions
,classes and methods that the module provides. One way of doing that is using
“dir(envoy)”.

Using dir(module)

That will list the names of all functions and variables, that are defined in the
Envoy module.

>>> dir(envoy)

That will give you an output like this:

['Command', 'ConnectedCommand', 'Response', '__builtins__', '__doc__', '__file__',
'__name__', '__package__', '__path__', '__version__', 'connect', 'core', 'expand_args',
'os', 'run', 'shlex', 'subprocess', 'threading’]

If you want to get one name per line, just run a simple for loop:

>>> for i in dir(envoy): print i

This output shows you one name per line:

Recommended Python Training

For Python training, our top recommendation is DataCamp.

Free Trial
...
Command
ConnectedCommand
Response
__builtins__
__doc__
__file__
__name__
__package__
__path__
__version__
connect
core
expand_args
os
run
shlex
subprocess
threading
>>>

You can also use “help(envoy)” to get the documentation on all the functions.

Envoy Usage

Let’s take a look at the “run” method for Envoy.

envoy.run()

To check the uptime of our machine, we can use the “uptime” command.

r = envoy.run("uptime”)

Standard Output

To see the output, we add “std_out”:

>>> r.std_out
'15:11  up 6 days,  1:04, 3 users, load averages: 0.55 0.57 0.61
‘

Status Code

To get the status code, add “status_code” to your object.

print r.status_code
0

Command

Run a command, get the response:

>>> print r

Standard Error

To get the standard error, add “std_err”.

r.std_err

History

Get history.

r.history
[<response 'uptime'="">]

Envoy Examples

Check for the Chrome process

r = envoy.run("ps aux |grep Chrome")
print r.std_out

In our last example, I make use of multiple commands.

import envoy

cmd = ['date', "uptime", "w"]

r = envoy.run(cmd)

print r.std_out

Get the status code of all commands

import envoy

cmd = ['date', "uptime", "w"]

for command in cmd:
    r = envoy.run(cmd)
    print r.status_code

Get the status code + the output of each command

import envoy

cmd = ['date', "uptime", "w"]

for command in cmd:
    r = envoy.run(cmd)
    print r.status_code, r.std_out

Envoy has become my main library to handle external command calls.

It was written to be an easy to use alternative to subprocess and the convenience
of envoy.run is really great.

More Reading

https://github.com/kennethreitz/envoy
http://stackoverflow.com/search?q=envoy

Recommended Python Training

For Python training, our top recommendation is DataCamp.

Free Trial

Filed Under: Code Snippets, envoy Date Originally Published: October 22, 2013

More Python Topics

API Basics Beautiful Soup bitly Cheatsheet Code Code Snippets Command Line crawler Data Types Development Dictionary Dictionary Data Structure In Python envoy Errorhandling Error Handling Exceptions Fabric Files fnmatch ftplib Games GUI Json Lists Loops Mechanzie Modules Modules In Python Mysql OS pil pip Python Python Code Snippets Python On The Web Python Strings Requests Scraping Scripts sh simplehttpserver System & OS urllib2 Web

Primary Sidebar

Get Our Free Guide To Learning Python

Menu

  • Python Basics
  • Code Examples
  • Loops
  • Functions
  • Strings
  • Python on the Web
  • Lists
  • Dictionaries
  • Python Modules
  • Python Glossary
  • Learn Python

Most Popular Content

  • Reading and Writing Files in Python
  • String Concatenation and Formatting
  • List Comprehensions in Python
  • How to use sys.argv in Python
  • How to use Split in Python
  • How to use comments in Python
  • Python Syntax Basics

Recent Posts

  • Datacamp Review 2020
  • Most Common Python Interview Questions For 2020
  • Python 2 Vs Python 3 with Examples
  • How To Run Your Python Scripts
  • The 5 Best Python IDE’s and Code Editors for 2019

Python Courses

  • Datacamp: Intro To Python
  • 2021 Complete Python Bootcamp
  • Python Mega Course: Build 10 Real World Apps
  • Python Data Science Bootcamp
  • Complete Python Developer: Zero to Mastery

Copyright © 2012–2021 · PythonForBeginners.com

  • Home
  • Contact Us
  • Privacy Policy
  • Write For Us