Python PIP

PIP is a package management system that installs and maintains Python software packages. Since Python version 3.4, PIP is included by default.

On Windows, you can find PIP in the following folder:

C:\Users\renemolenaar\AppData\Local\Programs\Python\Python37-32\Scripts

PIP looks for packages on the Python Package Index (PyPI), a repository for Python packages.

Let’s look at a package. Since we are network people, let’s check out the networkparse package. Networkparse makes it easy to work with hierarchical network configuration files. This is the project page:

Pip Networkparse Project Page

Networkparse is well maintained and has good documentation. We can install a package with the pip install command:

pip install networkparse
Collecting networkparse
  Downloading networkparse-1.8.0-py3-none-any.whl (13 kB)
Collecting dataclasses<0.7.0,>=0.6.0
  Downloading dataclasses-0.6-py3-none-any.whl (14 kB)
Installing collected packages: dataclasses, networkparse
Successfully installed dataclasses-0.6 networkparse-1.8.0

I’ll use one of the examples from their documentation. First, we import the package in our code:

from networkparse import parse

We’ll create a variable with a string which represents the running configuration of a Cisco IOS router:

running_configuration = """
hostname R1
!
boot-start-marker
boot-end-marker
!
no aaa new-model
!
mmi polling-interval 60
no mmi auto-configure
no mmi pvc
mmi snmp-timeout 180
!
ip cef
no ipv6 cef
!
multilink bundle-name authenticated
!
redundancy
!
interface GigabitEthernet0/1
 ip address 192.168.12.1 255.255.255.0
 duplex auto
 speed auto
 media-type rj45
!
interface GigabitEthernet0/2
 ip address 192.168.13.1 255.255.255.0
 duplex auto
 speed auto
 media-type rj45
!
router bgp 1
 bgp log-neighbor-changes
 network 1.1.1.1 mask 255.255.255.255
 neighbor 192.168.12.2 remote-as 2
 neighbor 192.168.13.3 remote-as 3
!
ip forward-protocol nd
!
no ip http server
no ip http secure-server
!         
ipv6 ioam timestamp
!

control-plane
!
line con 0
line aux 0
line vty 0 4
 login
 transport input none
!
no scheduler allocate
!
end
"""

We need to parse the configuration and assign it to the “config” variable:

>>> config = parse.ConfigIOS(running_configuration)

Now we can do some cool things. For example, show the IP addresses on all interfaces:

>>> interfaces = config.filter("interface .+")
>>> for interface in interfaces:
	ip_address = interface.children.filter("ip address .*").one()
	print(interface)
	print(ip_address)

The above code prints the following messages:

interface FastEthernet0/0
ip address 172.16.2.1 255.255.255.0
interface FastEthernet0/1
ip address 172.16.3.1 255.255.255.0
interface FastEthernet1/0
ip address 172.16.4.1 255.255.255.0

This is a simple example but now you know how you can install packages with PIP.

Conclusion

You have now learned how to use PIP to install packages for Python:

  • How to verify where PIP is located on your computer.
  • How to look for packages on PyPI.
  • How to install packages with PIP.
  • How to use packages in your Python code.

I hope you enjoyed this lesson. If you have any questions, please leave a comment.


Ask a question or start a discussion by visiting our Community Forum