2014-05-12 23 views
19

Trong đoạn mã này,Làm thế nào để sử dụng flake8 cho Python 3?

def add(x:int, y:int) -> int: 
    return x + y 

có chú thích chức năng mà chỉ được hỗ trợ sau khi python 3.0

Khi tôi thực hiện flake8 cho mã python này:

$ flake8 7.3.py -vv 
checking 7.3.py 
def add(x: int, y: int) -> int: 
return x + y 
7.3.py:1:11: E901 SyntaxError: invalid syntax 

Tôi có cú pháp hợp lệ lỗi, nhưng nó phải là cú pháp hợp lệ. Làm thế nào tôi có thể sử dụng flake8 để kiểm tra cú pháp chỉ được hỗ trợ trong Python 3.x?

+0

Xem: https://bugs.launchpad.net/pyflakes/+bug/989203 –

Trả lời

12

Xem: https://bugs.launchpad.net/pyflakes/+bug/989203

NB: Trong khi báo cáo lỗi này cho thấy một số mức độ phân giải, thử nghiệm phiên bản mới nhất của pyflakes 0.8.1 sự thiếu Python 3 Chú thích vẫn còn tồn tại.

Tôi đoán bạn sẽ phải gửi một yêu cầu tính năng mới riêng biệt cho các mẩu.

pyflakes Bugs

$ cat - > foo.py 
def add(x:int, y:int) -> int: 
    return x + y 
^D 
$ pyflakes --version 
0.8.1 

$ pyflakes foo.py 
foo.py:1:10: invalid syntax 
def add(x:int, y:int) -> int: 
     ^

CẬP NHẬT (20.140.514):

Khi nó quay ra câu trả lời thực tế cho vấn đề này là để chạy pyflakes hoặc flake8 dưới Python 3.x thay vì Python 2.x. Nó có ý nghĩa :)

Vì vậy, làm một cái gì đó như thế này:

/usr/bin/python3 -m pyflakes foo.py 

Xem: http://codepad.org/9BKxSZaD

+0

Cảm ơn, tôi đã gửi báo cáo lỗi: https://bugs.launchpad.net/pyflakes/+bug/1318497 – Cody

+0

Tôi đã nhận được phản hồi từ những bông hoa. Chúng ta cần phải thực thi các pyflakes trong Python 3 để loại bỏ lỗi đó. Đó là, pyflakes trong python 2 không thể được sử dụng fro python 3 script. – Cody

+0

Điều đó thực sự có ý nghĩa! Không chắc tại sao tôi không nghĩ về điều đó! Tôi sẽ cập nhật câu trả lời để bao gồm điều này! Cảm ơn! –

1

Tôi đã có câu trả lời trên reddit (here):

Nó sử dụng bất cứ điều gì flake8 được cài đặt trong Python trong đường dẫn của bạn.

vì vậy bạn cần phải cài đặt flake8 bởi PIP3 (trên OSX cho tôi),

pip3 install flake8 

làm việc này cho tôi. :)

Các vấn đề liên quan