Я пытаюсь запустить код Python, который использует функциональность Scapy из C #, используя IronPython.
Я получаю следующее исключение:
IronPython.Runtime.Exceptions.ImportException: 'No module named scapy'
Я уже добавил все, что мог, к поисковым системам:
paths.Add(@"C:\Program Files (x86)\IronPython 2.7\Lib");
paths.Add(@"C:\Python27\Lib"); // or you can add the CPython libs instead
paths.Add(@"C:\Python27\Scripts");
paths.Add(@"C:\\Python27\\lib\\site - packages\\scapy - git_archive.dev2ef25578b - py2.7.egg");
paths.Add(@"C:\\windows\\SYSTEM32\\python27.zip");
paths.Add(@"C:\\Python27\\DLLs");
paths.Add(@"C:\\Python27\\lib\\plat-win");
paths.Add(@"C:\\Python27\\Lib\\site-packages\\scapy-git_archive.dev2ef25578b-py2.7.egg\\scapy");
paths.Add(@"C:\\Python27");
paths.Add(@"C:\\Python27\\lib\\site-packages");
Если я попытаюсь использовать другие функциональные возможности модуля Python, например, математические, сценарий запустится.
При поиске решения я наткнулся на эту информацию:
https://grokbase.com/t/python/ironpython-users/1546gp6gt1/import-error-scapy-on-ironpython-windows
Где нижний предел:
"Вы правы, что IronPython не поддерживает pywin32, потому что
IronPython не поддерживает расширения C вообще. В этом конкретном
случай, вероятно, потому что scapy проверяет для Windows, используя sys.platform
== 'win32' вместо os.name == 'nt', и он пытается запустить кодовый путь Unix (uname - дешевая распродажа, это часть os в Unix, но не
Windows). "
Но это сообщение от 2015 года, оно все еще актуально? Я знаю, что с тех пор Scapy значительно улучшилась в отношении совместимости и удобства использования из Windows.