#python #manjaro #arch
#python #манджаро #arch
Вопрос:
Я использую полностью обновленную установку Manjaro (по состоянию на 15.08.2020). Для этого проекта используется python 3.8.3.
Я хотел бы использовать модуль python netifaces для определения IP-адреса одного из моих сетевых интерфейсов. Я пытался установить модуль как через pip ( sudo pip install netifaces
), так и через pacman ( sudo pacman -S python-netifaces
). Оба выдают мне netifaces версии 0.10.9. Однако, когда я запускаю
import netifaces
interfaces = netifaces.interfaces()
print(interfaces)
Я получаю следующее сообщение об ошибке:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-1-e0d29647271f> in <module>
1 import netifaces
----> 2 interfaces = netifaces.interfaces()
AttributeError: module 'netifaces' has no attribute 'interfaces'
Когда я затем проверяю dir(netifaces)
, я получаю
['__builtins__',
'__cached__',
'__doc__',
'__file__',
'__loader__',
'__name__',
'__package__',
'__spec__']
Однако он отлично работает с python 2.7.18, где возвращает список моих сетевых интерфейсов, как и ожидалось.
Он также отлично работает в моей установке openSUSE Leap 15.1. Для этого используются python 3.6.10 и сетевые интерфейсы 0.10.9.
Кажется, я не могу найти никаких похожих проблем, не говоря уже об их решениях при поиске. Буду признателен за любую помощь.
Комментарии:
1. У вас есть собственный файл с именем «netifaces.py «? (попробуйте
print(netifaces.__file__)
после его импорта.)2. Нет файла с именем netifaces.py в каталоге.
print(netifaces.__file__)
ВОЗВРАТ/home/[USER]/.cache/Python-Eggs/netifaces-0.10.9-py3.8-linux-x86_64.egg-tmp/netifaces.cpython-38-x86_64-linux-gnu.so
. Однако это кажется странным расположением для пакета python, если я удалю ~/.cache /Python-Eggs, это не изменит расположение файла.