从 pipenv 中的 vim ALE 错误导入错误 运行 Pylint 和 MyPy。 -- :!pylint % 有效 -- :!mypy % 有效
False import errors running Pylint and MyPy from vim ALE in pipenv. -- :!pylint % works -- :!mypy % works
我有一个项目目录
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 显示导入错误。类似的事情(甚至更糟)发生在 mypy 上。 Mypy 不仅会报告错误的导入错误(仅当 运行 通过 ALE 时),还会漏掉它通过 :!mypy tests\
.
捕获的错误
我被难住了。有什么想法吗?
如果您正在为项目使用 pipenv
,请尝试使用 let g:ale_python_auto_pipenv = 1
。如果这对您不起作用,您可以使用 :help ale-python-options
.
中的各种选项设置工具的路径
ALE 中有一个设置:
let g:ale_python_pylint_change_directory=0
let g:ale_python_flake8_change_directory=0
如果您不设置此项,ALE 将在 linting 之前进入项目子目录。
我有一个项目目录
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 显示导入错误。类似的事情(甚至更糟)发生在 mypy 上。 Mypy 不仅会报告错误的导入错误(仅当 运行 通过 ALE 时),还会漏掉它通过 :!mypy tests\
.
我被难住了。有什么想法吗?
如果您正在为项目使用 pipenv
,请尝试使用 let g:ale_python_auto_pipenv = 1
。如果这对您不起作用,您可以使用 :help ale-python-options
.
ALE 中有一个设置:
let g:ale_python_pylint_change_directory=0
let g:ale_python_flake8_change_directory=0
如果您不设置此项,ALE 将在 linting 之前进入项目子目录。