私が使用していますpyudevの上のライブラリをDebian GNU/Linux 8.7 (jessie)
持つpython2.7
、次のようにUSBデバイスを検出するために:
import sys
import pyudev
def main():
os = canary.helpers.get_platform_system()
if os.lower() == "linux":
print("linux")
context = pyudev.Context
monitor = pyudev.Monitor.from_netlink(context)
monitor.filter_by(device_type='usb')
elif os.lower() == 'darwin': # actually OS X
print("OS X is currently not supported, if you would like to add support make a pull request. Aborting...")
sys.exit()
elif os.lower() == 'windows':
print("Windows is currently not supported, if you would like to add support make a pull request. Aborting...")
sys.exit()
else:
print("Unknown operating system. Aborting...")
sys.exit()
if __name__ == "__main__":
main()
複数の例に示されているように、ただし、コードを実行すると、次のエラーが発生します。
/usr/bin/python2.7 /home/marvin/src/usb_canary/usb_canary.py
linux
Traceback (most recent call last):
File "/home/marvin/src/usb_canary/usb_canary.py", line 45, in <module>
main()
File "/home/marvin/src/usb_canary/usb_canary.py", line 30, in main
monitor = pyudev.Monitor.from_netlink(context)
File "/usr/local/lib/python2.7/dist-packages/pyudev/monitor.py", line 121, in from_netlink
monitor = context._libudev.udev_monitor_new_from_netlink(
AttributeError: type object 'Context' has no attribute '_libudev'
もともとpyudev
pip経由でインストールした後、インストールしたことを確認するのを忘れたlibudev-dev
のでlibudev-dev
、pyudev
pip経由でインストール、アンインストール、再インストールしましたが、エラーが解決しません。
私は現在libudev-dev
バージョン215を実行しています
このエラーが発生している理由と、潜在的に修正する方法を誰かにアドバイスできますか?私は彼らのGithubの問題を調べましたが、同じ問題を抱えている人は見つかりませんでした。私は彼らのRead the Docs wikiも調べましたが、それでも運がありません。
コンテキストを使用するには、コンテキストをインスタンス化する必要があるようです。そのため、パラメータを追加します。
context = pyudev.Context()
次にfilter_by
、別の入力引数が必要です。しかし、ドキュメントを見ると、おそらくそれを理解することができます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加