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 7 au 11 avril 2025

Voir la Formation Python avancé

Formations Python

Formation Python

Toulouse Du 5 au 7 mars 2025

Voir la Formation Python

Formations IA / Data Science

Formation Initiation au Python scientifique

Nantes Du 25 au 27 mars 2025

Voir la Formation Initiation au Python scientifique

Actualités en lien

Débo­guer des trig­gers SQL en cascade : une approche visuelle avec Matplot­lib

18/02/2025

Dans cet article, je vais parta­ger mon expé­rience de débo­gage à l’aide de Matplot­lib, un outil de visua­li­sa­tion Python puis­sant et flexible.
Voir l'article
Image
SQL-Matplotlib

Calcu­­lez sur GPU avec Python – Partie 2/3

11/02/2025

Dans cette partie, vous appren­drez à utili­ser votre GPU avec les librai­ries CuPy et PyCUDA. Vous commen­ce­rez à comprendre dans quelles condi­tions un GPU est préfé­rable à un CPU.
Voir l'article
Image
Cartes graphiques - GPU

Calcu­lez sur GPU avec Python – Partie 1/3

04/02/2025

Cet article vous présente comment utili­ser des GPU avec Python en passant par la présen­ta­tion du choix du maté­riel jusqu’à sa mise en œuvre avec diffé­rentes librai­ries : Cupy, cuDF, xarray…
Voir l'article
Image
Visuel Python

Inscription à la newsletter

Nous vous avons convaincus