Scripting How-To: Install the Junos PyEZ library

by on ‎04-12-2014 08:02 PM - edited on ‎08-23-2017 12:25 PM by Administrator Administrator (24,139 Views)

Install the PyEZ Library


Junos PyEZ has been built and tested with Python 2.6 and 2.7.


NOTE: Earlier versions of Python are known not to work. Additionally, no testing has been performed with Python 3.3 at this time.


System Requirements


Some of the project dependencies require OS system libraries. The ncclient package specifically requires libxml2 and libxslt installed on the system.
IMPORTANT: Before you begin installing Junos PyEZ, make sure that you have these libraries installed.



  • python-pip
  • python-dev
  • libxml2-dev
  • libxslt-dev
  • libssl-dev
  • libffi-dev


  • python-pip
  • python-devel
  • libxml2-devel
  • libxslt-devel
  • libffi-devel
  • gcc
  • openssl


  • py27-pip
  • libxml2
  • libxslt




Versions of Junos PyEZ are uploaded to PyPI for ease of installation.


NOTE: This process assumes "pip" is for Python 2.7.


1 # Install the Junos "EZ" library:
2 pip install junos-eznc




To get the "latest and greatest" code, you can obtain it directly from github.


NOTE: This process assumes "python" is version 2.7 and the git system package has been installed.

3 or



Apr 15, 2014
An FYI to those running OSX Mavericks 10.9.2 and the built in version of Python. To install successfully, I had to run this:

sudo -E pip install junos-eznc

Also ensure that you've downloaded the xcode command line tools from the Apple developer site. They're not on the app store server, so they won't be automagically fetched for you when you try to run: xcode-select --install
Posted 00:40, 15 Apr 2014
May 7, 2014
For Joao and others who may be having an issue getting this to install try the following:

$ sudo pip install pip --upgrade
$ sudo /usr/local/bin/pip install junos-eznc

This worked for a few Ubuntu machines that had the same issue.Edited 11:37, 7 May 2014
Posted 11:35, 7 May 2014
Jun 18, 2014
I am getting the following error when running "sudo -E pip install junos-eznc"...

Any ideas?


In file included from src/lxml/lxml.etree.c:346:

/private/var/folders/l0/5s5y9wlj7_5f824n8tf2_fw0000_6l/T/pip_build_root/lxml/src/lxml/includes/etree_defs.h:9:10: fatal error: 'libxml/xmlversion.h' file not found

#include "libxml/xmlversion.h"


1 error generated.

error: command 'cc' failed with exit status 1
Posted 12:02, 18 Jun 2014
Jun 18, 2014
I just found the fix for this... you need to run the following command to install Xcode command line tools before running the junos-eznc install...

xcode-select --install
Posted 12:25, 18 Jun 2014
Jun 18, 2014
@Gary - yes, it means you do not have the libxml2 devel package installed; or not in the right environment variables. Please see the "System Requirements" section in the above documentation. If that fails, please do post your questions on the Google Group for PyEZ here:!forum/junos-python-ez - we're starting to get a nice community of folks helping each other.

-- Jeremy
Posted 12:16, 18 Jun 2014
Jun 18, 2014
@Gary - excellent, thank you for sharing the fix with the community!
Posted 12:38, 18 Jun 2014
Sep 17, 2014
I tried to install Python and PyEZ on a 64bit Windows environment. I was unable to find 64 bit versions for some of the modules, the install consequently failed when I tried to load any Juniper libraries. However, when I started over with a fresh Python install using all 32-bit versions and it worked.
Posted 07:23, 17 Sep 2014
Sep 24, 2014
If no pip file under /Library/Python/2.7/site-packages , need install pip first.
$ sudo easy_install pip ;
$ sudo pip install pip --upgrade
$ sudo /usr/local/bin/pip install junos-eznc
$ pip install git+

-Simon Mao
Posted 07:26, 24 Sep 2014
Nov 17, 2014
For some old device like M10, the serial number of chassis/midplane might be empty. So I think this is a robust issue of this module.
Hardware inventory:
Item Version Part number Serial number Description
Routing Engine REV 07 740-007603 P11075101453 RE-3.0
Posted 21:46, 17 Nov 2014
Nov 17, 2014
Hit the following error while wanting to connect the device.
any idea?


>>> dev =Device(host=host,user=user,password=pwd)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "c:\Python27\lib\site-packages\junos_eznc-1.0.2-py2.7.egg\jnpr\junos\devi", line 439, in open
File "c:\Python27\lib\site-packages\junos_eznc-1.0.2-py2.7.egg\jnpr\junos\devi", line 660, in facts_refresh
gather(self, self._facts)
File "c:\Python27\lib\site-packages\junos_eznc-1.0.2-py2.7.egg\jnpr\junos\fact
s\", line 52, in facts_chassis
IndexError: list index out of range
Posted 20:12, 17 Nov 2014