Я использую следующее:
- пснмп 4.4.9
- Питон 3.7.2
- программа установки 3.4
Мой код очень прост, суть его ниже:
def snmpv2Get(ip_address):
errorIndication, errorStatus, errorIndex, varBinds = next(
getCmd(SnmpEngine(),
CommunityData(snmpv2Community),
UdpTransportTarget([ip_address, 161]),
ContextData(),
ObjectType(ObjectIdentity('1.3.6.1.2.1.1.1.0')),
ObjectType(ObjectIdentity('1.3.6.1.2.1.1.2.0')),
lookupMib=False)
)
При преобразовании кода в исполняемый файл с помощью pyinstaller я получаю эту ошибку при попытке запустить сгенерированный исполняемый файл:
pysnmp.smi.error.MibNotFoundError: No module __SNMP-FRAMEWORK-MIB loaded at <pysnmp.smi.builder.MibBuilder object at 0x000002788101EA20>
Команда, которую я использую для pyinstaller, выглядит следующим образом:
pyinstaller -y -F -i "icon.ico" SNMP.py --hidden-import="pysnmp.smi.mibs,pysnmp.smi.mibs.instances,pysnmp.smi.exval,pysnmp.cache"
Честно говоря, я не хочу изменять файл *.spec, потому что каждый раз, когда я его изменяю, команда переопределяет содержимое *.spec, не знаю почему.
Пожалуйста, какова правильная командная строка, чтобы избежать этой ошибки «Нет модуля». Я видел много потоков с подобным сообщением об ошибке, но все они имели дело с файлом *.spec, и я ищу правильную командную строку для использования в Windows, а не файл *.spec.