IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques tierces Python Discussion :

Souci d'importation pySerial "No module named serialwin32"


Sujet :

Bibliothèques tierces Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Agriculteur
    Inscrit en
    Juillet 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Agriculteur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 39
    Points : 22
    Points
    22
    Par défaut Souci d'importation pySerial "No module named serialwin32"
    Salut à tous,

    J'ai un souci en ce qui concerne l'importation du module pySerial, fraichement installé.



    Erreur :
    Traceback (most recent call last):
    File "C:\Python32\série", line 1, in <module>
    import serial
    File "C:\Python32\lib\site-packages\serial\__init__.py", line 19, in <module>
    from serialwin32 import *
    ImportError: No module named serialwin32
    ... alors que le module serialwin32 est bien présent dans le même dossier que _init_...

    Là je suis à court d'idée et de courage donc est-ce que quelqu'un peut me dépanner ???

    Pour info, code 'de test'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    import serial
    global ser
     
    ser=serial.Serial(6)
    ser.close()
     
     
    def changer(etat,sortie=13):
        ser.open()
        ser.write ('r'+str(sortie)+':'+str(etat))
        print ('r'+str(sortie)+':'+str(etat))
        ser.close()
     
     
     
    while 1:
        print ('entrer valeur 1/0')
        input (a)
        changer(a)

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    En supposant que "C:\Python32" indique que vous utilisez une version 3.2 de Python, l'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    File "C:\Python32\lib\site-packages\serial\__init__.py", line 19, in <module>
    from serialwin32 import *
    ImportError: No module named serialwin32
    dit que la version de pyserial que vous avez installé n'est pas compatible avec le nommage des imports en 3.2.
    Il faudrait un from serial.serialwin32 import * ou un from .serialwin32 pour que çà fonctionne.

    Je vous suggère d'installer la version 2.6 de PySerial.
    Vérifiez aussi que vous avez installé pywin32.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre à l'essai
    Homme Profil pro
    Agriculteur
    Inscrit en
    Juillet 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Agriculteur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 39
    Points : 22
    Points
    22
    Par défaut Nouveau souci
    Ok merci à toi wiztricks !
    J'ai réussi en ajoutant serial. devant...

    Autre souci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Traceback (most recent call last):
      File "C:\Python32\série", line 1, in <module>
        import serial
      File "C:\Python32\lib\site-packages\serial\__init__.py", line 19, in <module>
        from .serialwin32 import *
      File "C:\Python32\lib\site-packages\serial\serialwin32.py", line 12, in <module>
        import serial.win32
      File "C:\Python32\lib\site-packages\serial\win32.py", line 164
        MAXDWORD = 4294967295L # Variable c_uint
                             ^
    SyntaxError: invalid syntax
    c_unit est une variable pour la DLL je suppose ?? Mais comment peut passer ce format ?

    ?? Je comprends rien à comment fonctionne ce module-là (c'est une chose), et en plus il veut pas marcher !
    Code de wimn32.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    from ctypes import *
    from ctypes.wintypes import HANDLE
    from ctypes.wintypes import BOOL
    from ctypes.wintypes import LPCWSTR
    _stdcall_libraries = {}
    _stdcall_libraries['kernel32'] = WinDLL('kernel32')
    from ctypes.wintypes import DWORD
    from ctypes.wintypes import WORD
    from ctypes.wintypes import BYTE
     
    INVALID_HANDLE_VALUE = HANDLE(-1).value
     
    class _SECURITY_ATTRIBUTES(Structure):
        pass
    LPSECURITY_ATTRIBUTES = POINTER(_SECURITY_ATTRIBUTES)
     
    CreateEventW = _stdcall_libraries['kernel32'].CreateEventW
    CreateEventW.restype = HANDLE
    CreateEventW.argtypes = [LPSECURITY_ATTRIBUTES, BOOL, BOOL, LPCWSTR]
    CreateEvent = CreateEventW # alias
     
    CreateFileW = _stdcall_libraries['kernel32'].CreateFileW
    CreateFileW.restype = HANDLE
    CreateFileW.argtypes = [LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE]
    CreateFile = CreateFileW # alias
     
    class _OVERLAPPED(Structure):
        pass
    OVERLAPPED = _OVERLAPPED
     
    class _COMSTAT(Structure):
        pass
    COMSTAT = _COMSTAT
     
    class _DCB(Structure):
        pass
    DCB = _DCB
     
    class _COMMTIMEOUTS(Structure):
        pass
    COMMTIMEOUTS = _COMMTIMEOUTS
     
    GetLastError = _stdcall_libraries['kernel32'].GetLastError
    GetLastError.restype = DWORD
    GetLastError.argtypes = []
     
    LPOVERLAPPED = POINTER(_OVERLAPPED)
    LPDWORD = POINTER(DWORD)
     
    GetOverlappedResult = _stdcall_libraries['kernel32'].GetOverlappedResult
    GetOverlappedResult.restype = BOOL
    GetOverlappedResult.argtypes = [HANDLE, LPOVERLAPPED, LPDWORD, BOOL]
     
    ResetEvent = _stdcall_libraries['kernel32'].ResetEvent
    ResetEvent.restype = BOOL
    ResetEvent.argtypes = [HANDLE]
     
    LPCVOID = c_void_p
     
    WriteFile = _stdcall_libraries['kernel32'].WriteFile
    WriteFile.restype = BOOL
    WriteFile.argtypes = [HANDLE, LPCVOID, DWORD, LPDWORD, LPOVERLAPPED]
     
    LPVOID = c_void_p
     
    ReadFile = _stdcall_libraries['kernel32'].ReadFile
    ReadFile.restype = BOOL
    ReadFile.argtypes = [HANDLE, LPVOID, DWORD, LPDWORD, LPOVERLAPPED]
     
    CloseHandle = _stdcall_libraries['kernel32'].CloseHandle
    CloseHandle.restype = BOOL
    CloseHandle.argtypes = [HANDLE]
     
    ClearCommBreak = _stdcall_libraries['kernel32'].ClearCommBreak
    ClearCommBreak.restype = BOOL
    ClearCommBreak.argtypes = [HANDLE]
     
    LPCOMSTAT = POINTER(_COMSTAT)
     
    ClearCommError = _stdcall_libraries['kernel32'].ClearCommError
    ClearCommError.restype = BOOL
    ClearCommError.argtypes = [HANDLE, LPDWORD, LPCOMSTAT]
     
    SetupComm = _stdcall_libraries['kernel32'].SetupComm
    SetupComm.restype = BOOL
    SetupComm.argtypes = [HANDLE, DWORD, DWORD]
     
    EscapeCommFunction = _stdcall_libraries['kernel32'].EscapeCommFunction
    EscapeCommFunction.restype = BOOL
    EscapeCommFunction.argtypes = [HANDLE, DWORD]
     
    GetCommModemStatus = _stdcall_libraries['kernel32'].GetCommModemStatus
    GetCommModemStatus.restype = BOOL
    GetCommModemStatus.argtypes = [HANDLE, LPDWORD]
     
    LPDCB = POINTER(_DCB)
     
    GetCommState = _stdcall_libraries['kernel32'].GetCommState
    GetCommState.restype = BOOL
    GetCommState.argtypes = [HANDLE, LPDCB]
     
    LPCOMMTIMEOUTS = POINTER(_COMMTIMEOUTS)
     
    GetCommTimeouts = _stdcall_libraries['kernel32'].GetCommTimeouts
    GetCommTimeouts.restype = BOOL
    GetCommTimeouts.argtypes = [HANDLE, LPCOMMTIMEOUTS]
     
    PurgeComm = _stdcall_libraries['kernel32'].PurgeComm
    PurgeComm.restype = BOOL
    PurgeComm.argtypes = [HANDLE, DWORD]
     
    SetCommBreak = _stdcall_libraries['kernel32'].SetCommBreak
    SetCommBreak.restype = BOOL
    SetCommBreak.argtypes = [HANDLE]
     
    SetCommMask = _stdcall_libraries['kernel32'].SetCommMask
    SetCommMask.restype = BOOL
    SetCommMask.argtypes = [HANDLE, DWORD]
     
    SetCommState = _stdcall_libraries['kernel32'].SetCommState
    SetCommState.restype = BOOL
    SetCommState.argtypes = [HANDLE, LPDCB]
     
    SetCommTimeouts = _stdcall_libraries['kernel32'].SetCommTimeouts
    SetCommTimeouts.restype = BOOL
    SetCommTimeouts.argtypes = [HANDLE, LPCOMMTIMEOUTS]
     
    WaitForSingleObject = _stdcall_libraries['kernel32'].WaitForSingleObject
    WaitForSingleObject.restype = DWORD
    WaitForSingleObject.argtypes = [HANDLE, DWORD]
     
    ONESTOPBIT = 0 # Variable c_int
    TWOSTOPBITS = 2 # Variable c_int
    ONE5STOPBITS = 1
     
    NOPARITY = 0 # Variable c_int
    ODDPARITY = 1 # Variable c_int
    EVENPARITY = 2 # Variable c_int
    MARKPARITY = 3
    SPACEPARITY = 4
     
    RTS_CONTROL_HANDSHAKE = 2 # Variable c_int
    RTS_CONTROL_DISABLE = 0 # Variable c_int
    RTS_CONTROL_ENABLE = 1 # Variable c_int
    SETRTS = 3
    CLRRTS = 4
     
    DTR_CONTROL_HANDSHAKE = 2 # Variable c_int
    DTR_CONTROL_DISABLE = 0 # Variable c_int
    DTR_CONTROL_ENABLE = 1 # Variable c_int
    SETDTR = 5
    CLRDTR = 6
     
    MS_DSR_ON = 32 # Variable c_ulong
    EV_RING = 256 # Variable c_int
    EV_PERR = 512 # Variable c_int
    EV_ERR = 128 # Variable c_int
    SETXOFF = 1 # Variable c_int
    EV_RXCHAR = 1 # Variable c_int
    GENERIC_WRITE = 1073741824 # Variable c_long
    PURGE_TXCLEAR = 4 # Variable c_int
    FILE_FLAG_OVERLAPPED = 1073741824 # Variable c_int
    EV_DSR = 16 # Variable c_int
    MAXDWORD = 4294967295L # Variable c_uint
    EV_RLSD = 32 # Variable c_int
    ERROR_IO_PENDING = 997 # Variable c_long
    MS_CTS_ON = 16 # Variable c_ulong
    EV_EVENT1 = 2048 # Variable c_int
    EV_RX80FULL = 1024 # Variable c_int
    PURGE_RXABORT = 2 # Variable c_int
    FILE_ATTRIBUTE_NORMAL = 128 # Variable c_int
    PURGE_TXABORT = 1 # Variable c_int
    SETXON = 2 # Variable c_int
    OPEN_EXISTING = 3 # Variable c_int
    MS_RING_ON = 64 # Variable c_ulong
    EV_TXEMPTY = 4 # Variable c_int
    EV_RXFLAG = 2 # Variable c_int
    MS_RLSD_ON = 128 # Variable c_ulong
    GENERIC_READ = 2147483648L # Variable c_ulong
    EV_EVENT2 = 4096 # Variable c_int
    EV_CTS = 8 # Variable c_int
    EV_BREAK = 64 # Variable c_int
    PURGE_RXCLEAR = 8 # Variable c_int
    ULONG_PTR = c_ulong
    INFINITE = 0xFFFFFFFFL
     
    class N11_OVERLAPPED4DOLLAR_48E(Union):
        pass
    class N11_OVERLAPPED4DOLLAR_484DOLLAR_49E(Structure):
        pass
    N11_OVERLAPPED4DOLLAR_484DOLLAR_49E._fields_ = [
        ('Offset', DWORD),
        ('OffsetHigh', DWORD),
    ]
     
    PVOID = c_void_p
     
    N11_OVERLAPPED4DOLLAR_48E._anonymous_ = ['_0']
    N11_OVERLAPPED4DOLLAR_48E._fields_ = [
        ('_0', N11_OVERLAPPED4DOLLAR_484DOLLAR_49E),
        ('Pointer', PVOID),
    ]
    _OVERLAPPED._anonymous_ = ['_0']
    _OVERLAPPED._fields_ = [
        ('Internal', ULONG_PTR),
        ('InternalHigh', ULONG_PTR),
        ('_0', N11_OVERLAPPED4DOLLAR_48E),
        ('hEvent', HANDLE),
    ]
    _SECURITY_ATTRIBUTES._fields_ = [
        ('nLength', DWORD),
        ('lpSecurityDescriptor', LPVOID),
        ('bInheritHandle', BOOL),
    ]
    _COMSTAT._fields_ = [
        ('fCtsHold', DWORD, 1),
        ('fDsrHold', DWORD, 1),
        ('fRlsdHold', DWORD, 1),
        ('fXoffHold', DWORD, 1),
        ('fXoffSent', DWORD, 1),
        ('fEof', DWORD, 1),
        ('fTxim', DWORD, 1),
        ('fReserved', DWORD, 25),
        ('cbInQue', DWORD),
        ('cbOutQue', DWORD),
    ]
    _DCB._fields_ = [
        ('DCBlength', DWORD),
        ('BaudRate', DWORD),
        ('fBinary', DWORD, 1),
        ('fParity', DWORD, 1),
        ('fOutxCtsFlow', DWORD, 1),
        ('fOutxDsrFlow', DWORD, 1),
        ('fDtrControl', DWORD, 2),
        ('fDsrSensitivity', DWORD, 1),
        ('fTXContinueOnXoff', DWORD, 1),
        ('fOutX', DWORD, 1),
        ('fInX', DWORD, 1),
        ('fErrorChar', DWORD, 1),
        ('fNull', DWORD, 1),
        ('fRtsControl', DWORD, 2),
        ('fAbortOnError', DWORD, 1),
        ('fDummy2', DWORD, 17),
        ('wReserved', WORD),
        ('XonLim', WORD),
        ('XoffLim', WORD),
        ('ByteSize', BYTE),
        ('Parity', BYTE),
        ('StopBits', BYTE),
        ('XonChar', c_char),
        ('XoffChar', c_char),
        ('ErrorChar', c_char),
        ('EofChar', c_char),
        ('EvtChar', c_char),
        ('wReserved1', WORD),
    ]
    _COMMTIMEOUTS._fields_ = [
        ('ReadIntervalTimeout', DWORD),
        ('ReadTotalTimeoutMultiplier', DWORD),
        ('ReadTotalTimeoutConstant', DWORD),
        ('WriteTotalTimeoutMultiplier', DWORD),
        ('WriteTotalTimeoutConstant', DWORD),
    ]
    __all__ = ['GetLastError', 'MS_CTS_ON', 'FILE_ATTRIBUTE_NORMAL',
               'DTR_CONTROL_ENABLE', '_COMSTAT', 'MS_RLSD_ON',
               'GetOverlappedResult', 'SETXON', 'PURGE_TXABORT',
               'PurgeComm', 'N11_OVERLAPPED4DOLLAR_48E', 'EV_RING',
               'ONESTOPBIT', 'SETXOFF', 'PURGE_RXABORT', 'GetCommState',
               'RTS_CONTROL_ENABLE', '_DCB', 'CreateEvent',
               '_COMMTIMEOUTS', '_SECURITY_ATTRIBUTES', 'EV_DSR',
               'EV_PERR', 'EV_RXFLAG', 'OPEN_EXISTING', 'DCB',
               'FILE_FLAG_OVERLAPPED', 'EV_CTS', 'SetupComm',
               'LPOVERLAPPED', 'EV_TXEMPTY', 'ClearCommBreak',
               'LPSECURITY_ATTRIBUTES', 'SetCommBreak', 'SetCommTimeouts',
               'COMMTIMEOUTS', 'ODDPARITY', 'EV_RLSD',
               'GetCommModemStatus', 'EV_EVENT2', 'PURGE_TXCLEAR',
               'EV_BREAK', 'EVENPARITY', 'LPCVOID', 'COMSTAT', 'ReadFile',
               'PVOID', '_OVERLAPPED', 'WriteFile', 'GetCommTimeouts',
               'ResetEvent', 'EV_RXCHAR', 'LPCOMSTAT', 'ClearCommError',
               'ERROR_IO_PENDING', 'EscapeCommFunction', 'GENERIC_READ',
               'RTS_CONTROL_HANDSHAKE', 'OVERLAPPED',
               'DTR_CONTROL_HANDSHAKE', 'PURGE_RXCLEAR', 'GENERIC_WRITE',
               'LPDCB', 'CreateEventW', 'SetCommMask', 'EV_EVENT1',
               'SetCommState', 'LPVOID', 'CreateFileW', 'LPDWORD',
               'EV_RX80FULL', 'TWOSTOPBITS', 'LPCOMMTIMEOUTS', 'MAXDWORD',
               'MS_DSR_ON', 'MS_RING_ON',
               'N11_OVERLAPPED4DOLLAR_484DOLLAR_49E', 'EV_ERR',
               'ULONG_PTR', 'CreateFile', 'NOPARITY', 'CloseHandle']

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Ok merci à toi wiztricks !
    J'ai réussi en ajoutant serial. devant...
    Pardon si mes propos ont suggéré cela: le diagnostic était qu'on doit utiliser une version 2.6 du module serial en 3.2 pas qu'on puisse bricoler une version antérieure en espérant qu'elle tombe en marche!

    Installez d'abord la "bonne" version.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    C:\py_works>pip install pyserial
    Downloading/unpacking pyserial
      Real name of requirement pyserial is pyserial
      Downloading pyserial-2.6.tar.gz (116Kb): 116Kb downloaded
      Running setup.py egg_info for package pyserial
    
        warning: no files found matching 'examples\miniterm.py'
        warning: no files found matching 'test\test_io_lib.py'
    Installing collected packages: pyserial
      Running setup.py install for pyserial
        Skipping implicit fixer: buffer
        Skipping implicit fixer: idioms
        Skipping implicit fixer: set_literal
        Skipping implicit fixer: ws_comma
        Skipping implicit fixer: buffer
        Skipping implicit fixer: idioms
        Skipping implicit fixer: set_literal
        Skipping implicit fixer: ws_comma
    
        warning: no files found matching 'examples\miniterm.py'
        warning: no files found matching 'test\test_io_lib.py'
    Successfully installed pyserial
    Cleaning up...
    Puis testez un peu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    C:\py_works>py -3.2
    ActivePython 3.2.2.3 (ActiveState Software Inc.) based on
    Python 3.2.2 (default, Sep  8 2011, 10:56:38) [MSC v.1500 32 bit (Intel)] on win
    32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import serial
    >>>
    import serial fonctionne et les imports des modules dépendant aussi.

    Je comprends rien à comment fonctionne ce module-là (c'est une chose), et en plus il veut pas marcher !
    Si on fait des packages facilement installables, c'est justement pour ne pas regarder ce qu'il y a dedans (ce n'est pas interdit, c'est open source mais pour que l'utilisateur lambda reste "pragmatique", il ne doit pas avoir à ouvrir la boîte pour la mise en route) !!!
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre à l'essai
    Homme Profil pro
    Agriculteur
    Inscrit en
    Juillet 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Agriculteur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 39
    Points : 22
    Points
    22
    Par défaut :?
    Ok alors je pars du principe que j'ai mal installé mon module pyserial...

    Vu que j'aime bien trifouiller (pas bien....) je suis parti voir dans le setup.py que j'exécute pour installer le module.
    Et là oh surprise, un commentaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # For Python 3.x use the corresponding Python executable,
    # e.g. "python3 setup.py ..."
    Fichier python3 setup.py qui est introuvable !!!

    Je me dis que le mieux doit être donc de caser les différents dossiers (documentation, examples, serial, test pour les dossiers du ZIP notamment) ou seulement les utiles à l'endroit où il faut.

    Mais dans quel dossier faut-il les placer ? Y a-t-il un genre de "pointeur" dans l'interpréteur ou est-ce juste le fait de placer les exécutables dans le bon dossier ?

    Patience et longueur de temps font plus que force ni que rage...

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Dans mon message précédent, pyserial est installé via "pip" qui va chercher le module sur PyPi et l'installe où il faut.
    Si on est joueur, on peut le faire à partir du pyserial-2.6.tar.gz:
    • gzip et tar pour récupérer l'arborescence dans le répertoire pyserial-2.6,
    • cd pyserial-2.6

    Lorsque le readme parle de python3, il utilise un nom utilisé par défaut sous linux utilisé pour faire cohabiter plusieurs versions.

    Dans la pratique setup.py est un script.
    Il peut être lancé via "python setup.py".
    La version de python sera la même que lorsque vous tapez "python" pour avoir la console.
    Le script setup.py devrait s'adapter à la version de Python pour construire et installer les scripts du package dans l'environnement python correspondant.

    Taper "python setup.py install" doit suffire.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre à l'essai
    Homme Profil pro
    Agriculteur
    Inscrit en
    Juillet 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Agriculteur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 39
    Points : 22
    Points
    22
    Par défaut
    Merci wiz

    MAIS

    Dans mon message précédent, pyserial est installé via "pip" qui va chercher le module sur PyPi et l'installe où il faut.
    Comment exécuter pip sur mon windows ? (téléchargé, le setup.py ne m'avance apparemment pas )

    Je viens de trouver une discussion récente sur pip, donc je tente de télécharger active python.

    Je veux bien être joueur, tant que ça marche !

    Dans la pratique setup.py est un script.
    Il peut être lancé via "python setup.py".
    D'où lance-t-on cette commande ? (même pb pour pip)

    Si je lance le setup.py direct en double clic, il y a la console qui apparait et qui s'échappe en suivant, sans grande modif (apparemment)... Normal ? Où puis-je voir si le setup.py a bien fonctionné ??

    De mes dernières remarques
    Je me dis que le mieux doit être donc de caser les différents dossiers (documentation, examples, serial, test pour les dossiers du ZIP notamment) ou seulement les utiles à l'endroit où il faut.

    Mais dans quel dossier faut-il les placer ? Y a-t-il un genre de "pointeur" dans l'interpréteur ou est-ce juste le fait de placer les exécutables dans le bon dossier ?
    Rien de vrai ou de possible simplement ??

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    La cuisine de base de la programmation se passe à la console.
    Des coups de clics sur des fichiers présentés par l'explorateur Windows lancent le programme qui a été associé à l'extension '.py' du fichier.

    Si, lorsque vous tapez python à la console de commande, il ne se passe rien, c'est que vous avez omis d'inclure le répertoire \Python32\Script dans votre "path" windows.

    Tout cela est assez bien documenté...

    Je conçois que le néophyte trouve tout ce charabia indigeste.

    Désolé.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Membre à l'essai
    Homme Profil pro
    Agriculteur
    Inscrit en
    Juillet 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Agriculteur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 39
    Points : 22
    Points
    22
    Par défaut
    Ok alors j'ai installé active python, j'ai donc bien le pip exécutable.

    Sauf que à la commande Ca me répond
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Requirements already satisfied (use --upgrade to upgrade: pyserial in c:\python32\lib\site-package
    Cleaning up...
    En gros, c'est déjà installé ?

    Mais pourquoi rien n'est simple chez moi ??????

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Comment récupérer le module PySerial dans une arborescence fraîchement installée de Python?
    "fraîchement" = le répertoire "c:\python32" avait été nettoyé "avant" ou à été créé "vide" par la procédure d'installation.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  11. #11
    Membre à l'essai
    Homme Profil pro
    Agriculteur
    Inscrit en
    Juillet 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Agriculteur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 39
    Points : 22
    Points
    22
    Par défaut


    EUREKA !!!!!!
    Alors dans les 10 millions de manoeuvres que j'ai tentées, je crois que j'ai trouvé une procédure "correcte" :

    1-installer pip ou directement active python;
    2- Si comme moi vous avez bidouillé dans tous les sens, effacer tous les fichiers dézippés qui ne servent à rien et qui embrouillent pip...
    3- lancer dans l'invite de commande windows la commande "pip install pyserial"
    ...et attendre que la magie s'opère...

    Ca été laborieux, mais c'est résolu !!!! Je vais donc pouvoir parler à ma carte arduino pour lui dire quoi faire...

    Sans doute à bientôt pour mon prochain plantage !

    Et encore merci wiztricks !!

  12. #12
    Membre à l'essai
    Homme Profil pro
    Agriculteur
    Inscrit en
    Juillet 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Agriculteur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 39
    Points : 22
    Points
    22
    Par défaut De retour, même souci avec win 7
    Bonjour,

    Un paquet de temps après avoir évoqué tout ce bazar, voila que je change d'ordi. Et là, j'ai beau un peu mieux comprendre le système, mais j'ai toujours un souci lors de l'installation de ce satané pyserial...
    J'ai installé activepython, sauf qu'en lançant le pip pour installer pyserial, cette commande n'est pas reconnue...

    J'ai inclus python dans le path windows (fonctionne, la commande executer-> "python" m'envoie sur l'invite de commande python) mais pip (dans executer ->pip install pyserial) ne fonctionne toujours pas !!!

    Faut-il aussi l'inclure son chemin d'accès (Lib\Sites-package) dans le path windows ?

    Merci de votre aide

  13. #13
    Membre à l'essai
    Homme Profil pro
    Agriculteur
    Inscrit en
    Juillet 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Agriculteur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 39
    Points : 22
    Points
    22
    Par défaut Résolu-problème de path
    En fait j'ai rajouté le chemin d'accès C:\python32\Scripts dans le path et ça roule !!!
    Pour ajouter dans le path sur win7 : aller dans "modifier les variables d'environnement système", chercher la variable PATH, et ajouter après un point virgule le chemin d'accès, entre guillements.
    Dans ce cas j'ai ajouté
    ;'C:\python32\Scripts'

  14. #14
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Eh ben, tant mieux car "activepython" met normalement le path a jour.
    Essayez de regardez un truc comme VirtualBox.
    Programmer demande parfois d'installer/mettre a jour son "systeme".
    Mauvais kit, coup de clic hasardeux,... recommencer "proprement" suppose être capable de "nettoyer": c'est impossible car les seules solutions documentées sont tout re-installer ou repartir d'une sauvegarde.
    VirtualBox vous permet de créer des machines virtuelles. Leurs disques étant de simples fichiers, faire des sauvegardes complètes ou différentielles (pour revenir a T-1) devient possible et refaire la manœuvre, en étant sur du point de départ fera souvent économiser du temps.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Hlep please"import ag ImportError: No module named ag"
    Par assoum27 dans le forum Général Python
    Réponses: 3
    Dernier message: 17/05/2013, 12h23
  2. Problème "LoadModule ssl_module modules/mod_ssl.so"
    Par ldcarpathes dans le forum Apache
    Réponses: 9
    Dernier message: 24/01/2008, 11h07
  3. class/module name must be CONSTANT
    Par maxeur dans le forum Ruby
    Réponses: 2
    Dernier message: 15/01/2008, 08h44
  4. petit souci d'import de fichier
    Par lamiaa94 dans le forum Général Python
    Réponses: 3
    Dernier message: 27/09/2007, 10h47
  5. ImportError: No module named _md5
    Par kedare dans le forum Général Python
    Réponses: 3
    Dernier message: 25/07/2007, 21h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo