我正在尝试使用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检查Windows =='win32'而不是os.name =='nt',它正在尝试运行Unix代码路径(uname是赠品,它是Unix上os的一部分,但不是 Windows)。”
但该帖子来自2015年,是否仍然有意义?我知道Scapy从那时起就在Windows的兼容性和易用性方面有了很大的改进。