Makina Blog

Le blog Makina-corpus

Tutoriel: Installation de PySNMP sur Windows


L'installation de librairies Python avec pip peut devenir compliquée sous Windows lorsque les librairies installées nécessitent d'être compilées.

Installer PySNMP sous Windows

L'installation de PySNMP sous Windows peut s'avérer délicate en raison de la compilation de la librairie PyCrypto dont dépend PySNMP.
Pour commencer vous devez disposer d'un environnement Python opérationnel.
Nous vous proposons Python 3.5 et l'éditeur PyCharm.
Si vous utilisez Eclipse, l'éditeur PyDEV est un très bon choix lui aussi.

Python 3.5

Pour installer Python vous pouvez aussi installer "la distribution" Anaconda (solution recommandée) :

Lors de l'installation de Python, quelque soit votre choix d'installation, veillez à:

  • Choisir le mode avancé s'il y en a un
  • Installer Python pour tous les utilisateurs de la machine
  • Installer Python dans un chemin simple comme c:\Python35 ou c:\Anaconda3
  • Ajouter Python au PATH système

Puis installez un environnement de développement (éditeur):

  • Editeur PyCharm
  • Plugin PyDev pour eclipse si vous préférez cet éditeur.

Il existe bien sûr de nombreux autres éditeurs.

Installation de PySNMP

Excepté si vous disposez d'un environnement Microsoft Visual C++ (ou équivalent) correctement configuré
l'installation de la librairie PySNMP échouera avec un Python3.5 téléchargé sur http://python.org.
 
Avec Anaconda vous n'aurez pas de souci car PyCrypto fait partie des librairies incluses dans cette distribution.
Depuis l'invite de commande MSDOS, exécutez: c:\Anaconda3\Scripts\pip.exe install pysnmp
(Sous réserve que vous ayez installé Anaconda dans le dossier c:\Anaconda3)

    C:\MyProject>c:\Anaconda3\Scripts\pip.exe install pysnmp 
    Collecting pysnmp 
      Downloading pysnmp-4.3.2-py2.py3-none-any.whl (254kB) 
        100% |################################| 256kB 568kB/s 
    Requirement already satisfied (use --upgrade to upgrade): pycrypto>=2.4.1 in c:\anaconda3\lib\site-packages (from pysnmp) 
    Requirement already satisfied (use --upgrade to upgrade): pyasn1>=0.1.8 in c:\anaconda3\lib\site-packages (from pysnmp) 
    Collecting pysmi (from pysnmp) 
      Downloading pysmi-0.0.7-py2.py3-none-any.whl (62kB) 
        100% |################################| 71kB 6.0MB/s 
    Requirement already satisfied (use --upgrade to upgrade): ply in c:\anaconda3\lib\site-packages (from pysmi->pysnmp) 
    Installing collected packages: pysmi, pysnmp 
    Successfully installed pysmi-0.0.7 pysnmp-4.3.2  

Avec un Python classique c'est plus compliqué:

    C:\MyProject>c:\Python35\Scripts\pip.exe install pysnmp 
    Collecting pysnmp 
      Using cached pysnmp-4.3.2-py2.py3-none-any.whl 
        ... 
    Collecting pycrypto>=2.4.1 (from pysnmp) 
      Downloading pycrypto-2.6.1.tar.gz (446kB) 
        ... 
    Installing collected packages: pyasn1, ply, pysmi, pycrypto, pysnmp 
      Running setup.py install for ply 
      Running setup.py install for pycrypto 
        Complete output from command c:\python35\python.exe -c "import setuptools, tokenize; 
        running install 
        running build 
            ... 
        copying lib\Crypto\Signature\__init__.py -> build\lib.win-amd64-3.5\Crypto\Signature 
        Skipping optional fixer: buffer 
        Skipping optional fixer: idioms 
        Skipping optional fixer: set_literal 
        Skipping optional fixer: ws_comma 
        running build_ext 
        building 'Crypto.Random.OSRNG.winrandom' extension 
        warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath. 
        error: Unable to find vcvarsall.bat 
 
        ---------------------------------------- 
    ←[31mCommand "c:\python35\python.exe -c "import setuptools, tokenize; 
    --compile" ****failed with error code 1****  

Dans ce cas téléchargez un binaire PyCrypto pour votre version de Python depuis ce site :
    - Python 3.5: https://github.com/sfbahr/PyCrypto-Wheels
    - Autre Python: http://www.voidspace.org.uk/python/modules.shtml#pycrypto
Et installez-le.
Pour installer le binaire PyCrypto pour Python 3.5, la meilleure manière est d'exécuter la commande fournie
sur le site github:
    Python 64Bits:

    C:\MyProject>c:\Python35\Scripts\pip.exe install --use-wheel --no-index --find-links=https://github.com/sfbahr/PyCrypto-Wheels/raw/master/pycrypto-2.6.1-cp35-none-win_amd64.whl pycrypto 
        ... 
    Successfully installed pycrypto-2.6.1 

    Python 32Bits:

    C:\MyProject>c:\Python35\Scripts\pip.exe install --use-wheel --no-index --find-links=https://github.com/sfbahr/PyCrypto-Wheels/raw/master/pycrypto-2.6.1-cp35-none-win32.whl pycrypto 

Puis installez PySNMP:

    C:\MyProject>c:\Python35\Scripts\pip.exe install pysnmp 
    Collecting pysnmp 
      Using cached pysnmp-4.3.2-py2.py3-none-any.whl 
        ... 
    Installing collected packages: pysnmp 
    Successfully installed pysnmp-4.3.2 
 
    C:\MyProject>c:\Python35\python.exe 
    Python 3.5.1 (v3.5.1:37a07cee5969, Dec  6 2015, 01:54:25) [MSC v.1900 64 bit (AMD64)] on win32 
    Type "help", "copyright", "credits" or "license" for more information. 
    >>> import pysnmp 
    >>> exit() 

Utiliser PySNMP et tester la bonne configuration de votre environnement

Maintenant que vous avez correctement installé la librairie PySNMP, il convient de vérifier que votre environnement de travail soit adapté pour développer les traitements que vous envisagez:

  • Vous devez disposer d'un accès à un agent (une machine, un routeur, une imprimante compatible avec ce protocole) dont vous connaissez l'adresse IP
  • D'un accès au port 161 vers cette adresse IP
  • Eventuellement d'un accès au port 162 vers une IP appropriée si vous voulez gérer des trappes:
    • En envoyer si vous développez un agent,
    • En recevoir si vous êtes le superviseur
  • D'une connaissance des communautés nécessaires (protocoles v1 et v2) ou d'un compte utilisateur avec ses informations de connexion (protocole v3) pour intérroger l'agent

Nous vous proposons de tester cela avec le site demo.snmplabs.com:
Si vous êtes sous Linux vous pouvez vérifier que vous avez bien accès à votre agent via la commande SNMPGET:

    $ snmpget -v1 -c public demo.snmplabs.com sysLocation.0 sysDescr.0 
 
    SNMPv2-MIB::sysLocation.0 = Moscow, Russia 
    SNMPv2-MIB::sysDescr.0 = SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m 

Mais vous êtes sous Windows… Et vous ne disposez probablement pas d'une telle commande sur ce système.
PySNMP dispose d'une librairie supplémentaire fournissant ces commandes: pysnmp_apps, installez-la.

    C:\MyProject>c:\Python35\Scripts\pip.exe install pysnmp_apps 
    Collecting pysnmp-apps 
      Downloading pysnmp_apps-0.4.1-py2.py3-none-any.whl 
        ... 
    Installing collected packages: pysnmp-apps 
    Successfully installed pysnmp-apps-0.4.1 

Les commandes disponibles à présent sont les suivantes:

  • snmpbulkwalk.py
  • snmpget.py
  • snmpset.py
  • snmptranslate.py
  • snmptrap.py
  • snmpwalk.py
C:\MyProject>c:\Python35\Scripts\snmpget.py -v1 -c public demo.snmplabs.com sysLocation.0 sysDescr.0 

Si cela ne fonctionne pas, essayez d'ajouter le nom de l'interpréteur python devant le nom du script:

C:\MyProject>c:\Python35\python.exe c:\Python35\Scripts\snmpget.py -v1 -c public demo.snmplabs.com sysLocation.0 sysDescr.0 

Mais bien sûr, cela fonctionnera :

    SNMPv2-MIB::sysLocation.0 = Moscow, Russia 
    SNMPv2-MIB::sysDescr.0 = SunOS zeus.snmplabs.com 4.1.3_U1 1 sun4m 
 

Bienvenue dans le monde des utilisateurs de PySNMP !


Il ne vous reste plus qu'à découvrir le protocole SNMP et apprendre à l'utiliser avec PySNMP en suivant notre tutoriel SNMP avec Python.

Formations associées

Formations Python

Formation Python avancé

Nantes Du 8 au 12 avril 2024

Voir la formation

Formations Python

Formation Python

Nantes Du 27 au 29 mai 2024

Voir la formation

Formations IA / Data Science

Formation Initiation au Python scientifique

Toulouse Du 28 au 30 mai 2024

Voir la formation

Actualités en lien

Image
Webinaire découverte de Canari
10/04/2024

Revoir les webi­naires : décou­verte de l’ou­til CANARI-France

L’ap­pli­ca­tion CANARI-France est destiné aux acteurs agri­coles afin de calcu­ler des indi­ca­teurs agro-clima­tiques à partir de projec­tions clima­tiques. Décou­vrer en le replay des 4 webi­naires orga­ni­sés par Sola­gro et l’ADEME.

Voir l'article
Image
Python
26/07/2023

La formation Python éligible au CPF est enfin arrivée

Makina Corpus propose un nouvelle formation Python éligible au CPF. Grâce à cette certification, cette formation peut être entièrement financée par votre compte Compte Personnel de Formation.

Voir l'article
Image
Canari
20/07/2023

CANARI Europe, un service climatique innovant pour adapter l'agriculture européenne

Après un lancement réussi de CANARI l'application de projections climatiques dédiée à l'agriculture en France, CANARI s’étend à toute L’Europe et au nord du Maghreb.

Voir l'article

Inscription à la newsletter

Nous vous avons convaincus