Задать вопрос
@lomerok

Проблемы с банальным скриптом меняющим мак адрес, что нетак?

#!/usr/bin/env python

import subprocess
import optparse
import re

def get_arguments():
    parser = optparse.OptionParser()
    parser.add_option("-i", "--interface", dest="interface",
        help="Specify the interface of which you want to change the MAC address.")
    parser.add_option("-m", "--mac", dest="new_mac",
        help="Specify a random MAC address you would like to the interface to use.")
    (options, arguments) = parser.parse_args()
    if not options.interface():
        parser.error("[-] Error: interface not specified, use --help for more info.")
    elif not options.new_mac:
        parser.error("[-] Error: MAC address not specified, use --help for more info.")
    return options

options = get_arguments()

ifconfig_result = subprocess.check_output(["ifconfig", options.interface])
print(ifconfig_result)

/home/admon/PycharmProjects/myNew/venv/bin/python /home/admon/PycharmProjects/myNew/main.py
Traceback (most recent call last):
  File "/home/admon/PycharmProjects/myNew/main.py", line 20, in <module>
    options = get_arguments()
  File "/home/admon/PycharmProjects/myNew/main.py", line 14, in get_arguments
    if not options.interface():
TypeError: 'NoneType' object is not callable

Process finished with exit code 1
  • Вопрос задан
  • 97 просмотров
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 1
Endernyan83
@Endernyan83
Новичок на Habr Q&A
Я конечно в таком не эксперт, но была похожая ошибка при работе с Tkinter.
...
start_b = Button(root, label="Старт", command=start_pr).pack()
start_b.place(relx=1, rely=1)        #Тут ошибка "TypeError: 'NoneType' object..."
...

Связано это было с тем что первой строчкой мы присваеваем переменной результат функции пак с кнопкой, а не обьект кнопка, а поскольку функция пак возвращает None то вызвать от имени переменной функцию плейс невозможно. В вашем коде есть похожая по структуре строчка:
...
(options, arguments) = parser.parse_args()
...

Проверьте возвращает ли ... parser.parse_args() что-то не равное NoneType.
Но как я сказал, я таким не занимался, с используемой библиотекой не знаком. Мой ответ может быть неправильным. Удачи :D
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы