Можно ли использовать скриптовые скрипты от IronPython? - PullRequest
1 голос
/ 30 мая 2019

Я пытаюсь запустить код 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.

...