2016-06-30 9 views
0

私はpyroute2モジュールのサンプルスクリプトを実行しようとしている時はいつでも:Pyroute2インポートエラー - 輸入AF_BRIDGE

from pyroute2 import IPRoute 
ip = IPRoute() 
print([x.get_attr('IFLA_IFNAME') for x in ip.get_links()]) 

私は次のエラー取得しています:

Traceback (most recent call last): 
    File "ex.py", line 2, in <module> 
    ip = IPRoute() 
    File "C:\Python35\lib\site-packages\pyroute2\__init__.py", line 122, in __new_ 
_ 
    cls.register(cls.registry['class']) 
    File "C:\Python35\lib\site-packages\pyroute2\__init__.py", line 102, in __geti 
tem__ 
    [name], 0) 
    File "C:\Python35\lib\site-packages\pyroute2\iproute.py", line 175, in <module 
> 
    from socket import AF_BRIDGE 
ImportError: cannot import name 'AF_BRIDGE' 

私は」主なプラットフォームをpyroute2を使ってみるとOpenBSDですが、Windowsのような他のプラットフォームでは問題は残ります。

私はこれをpython3.5とpython2.7の両方でpython3.4に加えてテストしました。

この問題の解決方法はわかりません。

公式pyroute2 git repositoryから感謝まず

+0

主現像剤がgithで述べたようにub、それはLinux用で、他のプラットフォームでは動作しません。 – AhmedWise

答えて

1

、:

Pyroute2は、純粋なPythonのネットリンクとLinuxのネットワーク構成ライブラリです。それはPythonのstdlibだけを必要とし、第三者のライブラリは必要ありません。後に変更することができますが、depsツリーは可能な限り単純なままです。

OpenBSDとWindowsはLinuxシステムではありません。 OpenBSDはAF_BRIDGEをサポートしておらず、Linux kernelでのみサポートされています。スクリプトを実行したい場合は、まずpyroute2でOpenBSD用の

  • Create an interfaceのチケットを開こうとする必要があります。
  • OpenBSDのポートAF_BRIDGE(私はこれがコミュニティによって受け入れられるとは思わない)。
  • あなたが望むことをする別の方法をお探しください。代替について

あなただけのルートテーブルをチェックする必要がある場合は、あなたが良い選択肢を見つけることができます:

  • Saltする(Linux、Windowsや* BSDでサポート)
  • Scapy(指向セキュリティ)
  • Rex)(LinuxおよびOpenBSDのと互換性が、Perlで