Найти - Пользователи
Полная версия: Pysnmp and pyinstaller
Начало » Python для экспертов » Pysnmp and pyinstaller
1
Niakola
Возникла следующая проблема. Собрал питоновский файл в 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
Пробовал подкинуть подмодули, но без успешно, единственное, что поменялось, так этого код объекта вместо 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 )
doza_and
Niakola
В чем может быть причина?
:) Выступлю как обычно как злобный троль. Причина в том что вы собираете exe а надо собирать дистрибутив, который поставит питон, если его нет и нужные модули, включая ваш.
Niakola
doza_and
Уже разобрался в чем причина. Получилось собрать.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB