Как интегрировать pep8.py в Eclipse?

Неустранимая ошибка: вызов неопределенной функции XXX

Случается, когда вы пытаетесь вызвать функцию, которая еще не определена. Общие причины включают отсутствующие расширения и включают в себя объявление условной функции, функцию в объявлении функции или простые опечатки.

Пример 1 - Декларация условной функции

$someCondition = false;
if ($someCondition === true) {
    function fn() {
        return 1;
    }
}
echo fn(); // triggers error

В этом случае fn() никогда не будет объявлено, потому что $someCondition не соответствует действительности.

Пример 2 - Функция в объявлении функции

function createFn() 
{
    function fn() {
        return 1;
    }
}
echo fn(); // triggers error

В этом случае fn будет объявлен только после вызова createFn(). Обратите внимание, что последующие вызовы createFn() вызовут ошибку об обновлении существующей функции.

Вы также можете увидеть это для встроенной функции PHP. Попробуйте найти функцию в официальном руководстве и проверьте, к какому «расширению» (к нему принадлежит PHP-модуль), и какие версии PHP поддерживают его.

В случае отсутствующее расширение, установите это расширение и включите его в php.ini. Обратитесь к Инструкции по установке в Руководстве по PHP для расширения вашей функции. Возможно, вы также сможете включить или установить расширение с помощью диспетчера пакетов (например, apt в Debian или Ubuntu, yum в Red Hat или CentOS ) или панель управления в среде общедоступного хостинга.

Если функция была введена в более новой версии PHP из того, что вы используете, вы можете найти ссылки на альтернативные реализации в руководстве или в разделе комментариев , Если он был удален из PHP, найдите информацию о том, почему, поскольку это может быть уже не нужно.

В случае отсутствия включено, обязательно включите файл, объявляющий функцию перед вызовом функции.

В случае опечаток исправить опечатку.

Вопросы, относящиеся

90
задан AlexA 6 September 2011 в 13:16
поделиться

2 ответа

Это, еще кажется, полностью не интегрируется в Pydev.

, Как предложено в это сообщение ,

[это] потребовало бы изменения кода в pydev - гибкая опция будет добавлять предпочтения, чтобы позволить пользователю выбрать, к которым шаблонам он хочет соответствовать для создания гиперссылок (и высказывание, какая группа в соответствии является строкой и какой является файлом)...

Или, можно попробовать трудно кодированная игра с: org.python.pydev.debug.ui. PythonConsoleLineTracker (должно быть довольно легко схватить).

А запрос действительно существует для просто этого, но это, кажется, спустя все еще открытый 1 год после его создания...

6
ответ дан VonC 24 November 2019 в 07:05
поделиться

Я не знаю, как интегрировать его для всего проекта, но я использовал его как внешний инструмент для анализа отдельного файла.

Обратите внимание, что пакет pycodestyle является официальной заменой и более новой версией пакета pep8 . Чтобы установить его, запустите:

$ sudo pip install --upgrade pycodestyle

Затем в Eclipse:

  1. Выберите Запуск - Внешние инструменты - Конфигурации внешних инструментов ...
  2. Выберите Корневой узел программы .
  3. Нажмите кнопку Новая конфигурация запуска .
  4. Введите Имя для конфигурации запуска. Я использую пикодестиль .
  5. Заполните следующие поля:

    Местоположение - $ {system_path: pycodestyle}

    Рабочий каталог - $ {container_loc}

    Аргументы - - "$ {resource_name}" (Используется текущий активный файл.)

Перейдите на вкладку Общие и убедитесь, что установлен флажок Allocate Console .

Преимущество этого подхода заключается в том, что вы можете использовать самую последнюю версию пакета, а не ограничиваться старой версией, включенной в PyDev. И если вам интересно настроить pylint аналогичным образом, см. этот ответ .

26
ответ дан 24 November 2019 в 07:05
поделиться
Другие вопросы по тегам:

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