我正在尝试使用 IronPython 运行使用来自 C# 的 Scapy 功能的 Python 代码。
我得到以下异常:
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 使用 sys.platform == 'win32' 而不是 os.name == 检查 Windows 'nt' 并且它正在尝试运行 Unix 代码路径(uname 是赠品,它是 Unix 上操作系统的一部分,但不是 Windows)。”
但是那篇文章是 2015 年的,它仍然相关吗?我知道 Scapy 从那时起在 Windows 的兼容性和易用性方面有了很大改进。