pip 在 Python3 virtualenv 中安装 flake8 在 OSX 上为 python 2.7 安装 flake8

pip installing flake8 in a Python3 virtualenv installs flake8 for python 2.7 on OSX

我正在尝试正确设置 atom,但 linter-flake8 包指出不存在的语法错误让我很烦,因为它使用的是 python 2 flake8。

双重烦人的是,当在文件中指出此类错误时,文件的其余部分不会被检查,这使得查找未使用的导入变得更加困难。

我在settings中设置了可执行文件路径,在pip安装后指向正确的二进制文件,但是出现同样的错误。

$ which python
/Users/asday/.virtualenvs/_/bin/python
$ which pip
/Users/asday/.virtualenvs/_/bin/pip
$ pip install flake8
[...]
$ which flake8
/Users/asday/.virtualenvs/_/bin/flake8
$ python -V
Python 3.5.1
$ pip -V
pip 8.1.2 from /Users/asday/.virtualenvs/_/lib/python3.5/site-packages (python 3.5)
$ flake8 --version
2.5.4 (pep8: 1.7.0, pyflakes: 1.0.0, mccabe: 0.4.0) CPython 2.7.11 on Darwin
$ flake8 .
./test.py:9:14: E901 SyntaxError: invalid syntax

其中 test.py 就是:

def f(*args, **kwargs):
    pass


kwargs = {}

f(
    a=1,
    **kwargs,
)

如何让 flake8 在 OSX 上安装正确版本的 python?

您可以从 https://pypi.python.org/pypi/flake8 下载 flake 8 项目然后使用

pip install file.whl
这样你就可以从本地 python 安装它,它应该安装为 python 3.

问题不在于 pip 或 flake8,而是您的 PATH 变量。您需要做的是 python -m flake8 让它在您的环境中使用。

使用 pip3 安装 Python 3.x