Automation
Automation

Scripting How-To: Install the Junos PyEZ library

by Cordelia on ‎04-12-2014 08:02 PM - edited on ‎08-23-2017 12:25 PM by Administrator Administrator
04.12.14   |   08:02 PM

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.

 

Ubuntu/Debian

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

Fedora

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

FreeBSD

  • py27-pip
  • libxml2
  • libxslt

 

PyPI

 

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

 

Github

 

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.

 
2  
3 or
4  

 

 

'
Comments
04.15.14
Cordelia
 
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
05.07.14
Cordelia
 
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
06.18.14
Cordelia
 
I am getting the following error when running "sudo -E pip install junos-eznc"...

Any ideas?

Thanks!
g2

******************************************************
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
06.18.14
Cordelia
 
@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: https://groups.google.com/forum/#!forum/junos-python-ez - we're starting to get a nice community of folks helping each other.

HTH,
-- Jeremy
Posted 12:16, 18 Jun 2014
06.18.14
Cordelia
 
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
06.18.14
Cordelia
 
@Gary - excellent, thank you for sharing the fix with the community!
Posted 12:38, 18 Jun 2014
09.17.14
Cordelia
 
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
09.24.14
Cordelia
 
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+https://github.com/Juniper/py-junos-eznc.git

Regards
-Simon Mao
Posted 07:26, 24 Sep 2014
11.17.14
Cordelia
 
Hit the following error while wanting to connect the device.
any idea?

Stone

>>> dev =Device(host=host,user=user,password=pwd)
>>> dev.open()
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
ce.py", line 439, in open
self.facts_refresh()
File "c:\Python27\lib\site-packages\junos_eznc-1.0.2-py2.7.egg\jnpr\junos\devi
ce.py", 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\chassis.py", line 52, in facts_chassis
'chassis-module[name="Backplane"]/serial-number')[0].text
IndexError: list index out of range
Posted 20:12, 17 Nov 2014
11.17.14
Cordelia
 
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
Chassis
Midplane
Routing Engine REV 07 740-007603 P11075101453 RE-3.0
Posted 21:46, 17 Nov 2014