Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 17, 2017 10:04:39

Niakola
Зарегистрирован: 2017-06-17
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Pysnmp and pyinstaller

Возникла следующая проблема. Собрал питоновский файл в exe с помощью pyinstaller. После чего запускаю exe файл и выдается следующая ошибка:

Traceback (most recent call last):
File “MonitorNetworkPrint.py”, line 414, in <module>
File “MonitorNetworkPrint.py”, line 368, in Main
File “MonitorNetworkPrint.py”, line 189, in StartMonitor
File “MonitorNetworkPrint.py”, line 84, in SnmpGet
File “pysnmp\entity\rfc3413\oneliner\cmdgen.py”, line 166, in __init__
File “pysnmp\entity\engine.py”, line 88, in __init__
File “pysnmp\smi\builder.py”, line 377, in importSymbols
pysnmp.smi.error.MibNotFoundError: No module __SNMP-FRAMEWORK-MIB loaded at <pysnmp.smi.builder.MibBuilder object at 0x02974230>
Failed to execute script MonitorNetworkPrint

Когда запускаю питоновский файл, то все работает. В чем может быть причина?
Вот кусок кода где происходит ошибка:

def SnmpGet (MassOids,IpPrint):

MassGet = []

cmdGen = cmdgen.CommandGenerator()

errorIndication, errorStatus, errorIndex, varBinds = cmdGen.getCmd(
cmdgen.CommunityData('public',mpModel=0),
cmdgen.UdpTransportTarget((IpPrint, 161),timeout=4,retries=1),
MassOids[0],MassOids[1],MassOids[2],MassOids[3]
)


if errorIndication:
print(errorIndication)
else:
if errorStatus:
print('%s at %s' % (
errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex)-1] or '?'
)
)
else:
for name, val in varBinds:
MassGet.append (val.prettyPrint())


print (MassGet)
WriteBd (IpPrint,MassGet)

Отредактировано Niakola (Июнь 17, 2017 10:16:52)

Офлайн

#2 Июнь 18, 2017 12:36:55

Niakola
Зарегистрирован: 2017-06-17
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Pysnmp and pyinstaller

Пробовал подкинуть подмодули, но без успешно, единственное, что поменялось, так этого код объекта вместо 0x02974230 на 0x029C2170

Прикладываю код файла спецификации :

# -*- mode: python -*-
from PyInstaller.utils.hooks import collect_data_files, collect_submodules

block_cipher = None
a = Analysis(['MonitorNetworkPrint.py'],
pathex=['D:\\g\\MonitorNetwork'],
binaries=[],
datas=collect_data_files('pysnmp'),
hiddenimports=['pysnmp.smi.exval','pysnmp.cache']+collect_submodules('pysmi')+collect_submodules('ply') + collect_submodules('pyasn1') + collect_submodules('pysnmp'),
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='MonitorNetworkPrint',
debug=False,
strip=False,
upx=True,
console=True )

Офлайн

#3 Июнь 18, 2017 14:38:51

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Pysnmp and pyinstaller

Niakola
В чем может быть причина?
:) Выступлю как обычно как злобный троль. Причина в том что вы собираете exe а надо собирать дистрибутив, который поставит питон, если его нет и нужные модули, включая ваш.



Офлайн

#4 Июнь 18, 2017 16:29:31

Niakola
Зарегистрирован: 2017-06-17
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Pysnmp and pyinstaller

doza_and
Уже разобрался в чем причина. Получилось собрать.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version