Ложные ошибки импорта при запуске Pylint и MyPy из vim ALE в pipenv.-:! pylint% works -:! mypy% works - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть каталог проекта

project
    - code
        - code.py
    - tests
        - test_code.py

В прошлом все работало с virtualenv.Я сейчас пытаюсь pipenv.У меня есть это в моем .vimrc

"python with virtualenv support
py << EOF
import os
import sys
if 'VIRTUAL_ENV' in os.environ:
    project_base_dir = os.environ['VIRTUAL_ENV']
    activate_this = os.path.join(project_base_dir, 'Scripts/activate_this.py')
    execfile(activate_this, dict(__file__=activate_this))
EOF

Это, кажется, работает.Я получаю свою виртуальную среду Python с :!python.Я могу запустить :!pylint и :!mypy, ни один из которых не установлен в моем глобальном Python.

:!pylint tests\ не показывает ошибок импорта, но ALE показывает ошибку импорта.Аналогичная вещь (и хуже) происходит с MypyMypy не только сообщает о ложных ошибках импорта (только при запуске через ALE), но также пропускает ошибки, которые он обнаруживает через :!mypy tests\.

Я в тупике.Есть идеи?

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

В ALE есть настройка:

let g:ale_python_pylint_change_directory=0
let g:ale_python_flake8_change_directory=0

Если вы не установите это значение, ALE перейдет в подкаталоги проекта перед линтовкой.

0 голосов
/ 27 ноября 2018

Попробуйте использовать let g:ale_python_auto_pipenv = 1, если вы используете pipenv для проекта.Если это не работает для вас, вы можете установить пути к своим инструментам с помощью различных опций в :help ale-python-options.

...