Làm thế nào để tích hợp pep8.py trong Eclipse?


90

Một chút nền tảng:

  • PEP 8Hướng dẫn Kiểu cho Mã Python . Nó chứa các quy ước mà tất cả các lập trình viên python nên tuân theo.
  • pep8.py là một tập lệnh (rất hữu ích) kiểm tra việc định dạng mã của một tập lệnh python nhất định, theo PEP 8.
  • Eclipse là một IDE tuyệt vời. Với tiện ích mở rộng Pydev , nó có thể được sử dụng để phát triển Python

Tôi chạy pep8.py theo cách thủ công khi viết tập lệnh, nhưng với các dự án lớn hơn, tôi thích sử dụng Eclipse hơn. Sẽ thực sự hữu ích nếu tích hợp pep8.py trong Eclipse / Pydev, vì vậy nó có thể được chạy tự động trong tất cả các tệp trong dự án và trỏ đến các dòng chứa cảnh báo. Có thể có một cách rõ ràng để làm điều đó, nhưng tôi vẫn chưa tìm ra nó.

Câu hỏi đặt ra là: Làm thế nào để tích hợp pep8.py trong Eclipse?


3
Hiện đã có tích hợp pep8 mặc định. Xem: stackoverflow.com/questions/399956/…
Fabio Zadrozny

1
Cho rằng tình hình đã thay đổi kể từ khi bạn chấp nhận câu trả lời của Dmitry Kochkin , tôi có thể đề nghị bạn thay đổi câu trả lời đã chấp nhận của mình thành câu trả lời của Fabio Zadrozny hoặc câu trả lời của angelo.bixly không? Điều này sẽ giúp những khách truy cập trong tương lai, những người như tôi, đã tìm thấy câu hỏi này từ Google, cho phép chúng tôi tìm thấy thông tin cập nhật nhất trước tiên - nếu không, có thể mất nhiều thời gian để những câu trả lời này được đẩy lên đầu.
Mark Booth

Câu trả lời:


88

Kể từ PyDev 2.3.0, pep8được tích hợp trong PyDev theo mặc định, thậm chí vận chuyển với phiên bản mặc định của nó.

Mở Cửa sổ> Tùy chọn

Nó phải được bật trong PyDev> Editor> Code Analysis> pep8.py

Lỗi / Cảnh báo phải được hiển thị dưới dạng điểm đánh dấu (như những thứ khác trong phân tích mã thông thường).

Trong trường hợp tệp không được phân tích, hãy xem https://stackoverflow.com/a/31001619/832230 .


6
Nó hiển thị nhiều cảnh báo theo mặc định. Tuy nhiên, khi tôi chạy nó từ dòng lệnh, nó thậm chí còn hiển thị nhiều hơn. Làm cách nào để thuyết phục nó hiển thị tất cả các cảnh báo trong Eclipse như nó đang hiển thị khi chạy từ dòng lệnh? Các tùy chọn đều giống nhau. Ngoài ra, chuyển hướng đầu ra pep8 đến bảng điều khiển không có tác dụng gì.
Krystian Cybulski

2
PyDev hiện đang sử dụng phiên bản cũ hơn vì nó sử dụng phiên bản Jython nội bộ (hiện đang ở mức 2.2.1). Có kế hoạch làm cho nó chạy bên ngoài để lấy kết quả hoặc cập nhật Jython nội bộ để có thể hỗ trợ các phiên bản mới hơn của pep8.py.
Fabio Zadrozny

Rõ ràng, điều này không hoạt động với PyDev 4.2.0, không có điểm đánh dấu nào được hiển thị, ở chế độ Cảnh báo hoặc Lỗi.
Luís de Sousa

1
Chỉ cần kiểm tra nó ở đây và nó hoạt động với tôi ... lưu ý rằng nguồn của bạn phải nằm trong thư mục nguồn (tức là: trong PYTHONPATH) để nó hoạt động (nếu nó vẫn không hoạt động, vui lòng báo cáo sự cố tại trình theo dõi pydev ).
Fabio Zadrozny

Nó bắt đầu hoạt động sau khi tôi đặt nó ở chế độ Lỗi. Cũng có độ trễ từ thời điểm bạn kích hoạt nó cho đến khi nó bắt đầu đánh dấu mã.
Luís de Sousa

26

Tôi không biết làm thế nào để tích hợp nó cho toàn bộ dự án, nhưng tôi đã sử dụng nó như một công cụ bên ngoài để phân tích một tệp riêng lẻ.

Lưu ý rằng pycodestylegói là thay thế chính thức cho và là phiên bản mới hơn của pep8gói. Để cài đặt nó, hãy chạy:

$ sudo pip install --upgrade pycodestyle

Tiếp theo, trong Eclipse:

  1. Chọn Run-Công cụ bên ngoài-Cấu hình công cụ bên ngoài ...
  2. Chọn nút gốc của chương trình .
  3. Nhấn nút Cấu hình khởi chạy mới .
  4. Nhập Tên cho cấu hình khởi chạy của bạn. Tôi sử dụng pycodestyle.
  5. Điền vào các trường sau:

    Vị trí -${system_path:pycodestyle}

    Thư mục làm việc -${container_loc}

    Đối số - "${resource_name}"(Điều này sử dụng tệp hiện đang hoạt động.)

Đi tới tab Chung và xác nhận rằng hộp kiểm Bảng điều khiển Phân bổ đã được chọn.

Một lợi ích của cách tiếp cận này là bạn có thể sử dụng phiên bản mới nhất của gói và không giới hạn ở phiên bản cũ đi kèm với PyDev. Và nếu bạn tò mò về việc thiết lập pylinttheo cách tương tự, hãy xem câu trả lời này .


1
Nếu bạn đang gặp lỗi Lựa chọn tham chiếu biến trống: $ {container_loc} đừng quên thêm thư mục nguồn của bạn vào PYTHONPATH (nó có thể không ở đó nếu bạn nhập một dự án hiện có vào không gian làm việc). Nhấp chuột phải vào tên dự án> Thuộc tính> PyDev - PYTHONPATH> tab Thư mục nguồn và nhấp vào Thêm thư mục nguồn . Nên làm việc như một cái duyên.
berni

2
Hiện đã có tích hợp pep8 mặc định. Xem: stackoverflow.com/a/8532188/110451
Fabio Zadrozny

1
Điều này không hữu ích cho việc KIỂM TRA pep8, vì nó hầu hết có sẵn trong Eclispe - nhưng tôi thấy nó rất tuyệt cho autopep8! Cảm ơn
tom stratton

12
  1. Mở Eclipse của bạn
  2. Đi tới Trợ giúp và chọn Cài đặt Phần mềm Mới
  3. Nhấp vào nút Thêm và hộp thoại "Thêm kho lưu trữ" sẽ xuất hiện
  4. Bạn có thể sử dụng bất kỳ tên nào bạn thích cho nó. (Tôi đã sử dụng PyDev)
  5. Đối với vị trí, hãy nhập "http://pydev.org/updates"
  6. Nhấp vào Ok.
  7. Bây giờ bạn đang trong quá trình cài đặt. Chỉ cần đợi nó kết thúc.
  8. Sau khi cài đặt, đóng Eclipse và mở lại.
  9. Bây giờ PyDev đã được cài đặt trong Eclipse của bạn, hãy đi tới Window-> Preferences
  10. Chọn PyDev-> Editor-> Code Analysis
  11. Đi tới tab pep8.py
  12. Chọn nút radio để cảnh báo và nhấp vào Ok.

Đó là nó. IDE Eclipse của bạn hiện đã được tích hợp với PEP8. Để chạy pep8.py tự động, hãy nhấp chuột phải vào trình soạn thảo dự án của bạn. Chọn PyDev và nhấp vào "phân tích mã". Trong tab sự cố trong không gian làm việc của bạn, bạn sẽ thấy các cảnh báo trỏ đến dòng mà bạn đã vi phạm trong PEP8 (nếu bạn đã vi phạm).


Một điều rất lạ là cho dù tôi đã cố gắng cấu hình pep8 như thế nào, các cảnh báo và đánh dấu thông tin trong trình chỉnh sửa vẫn không hiển thị. Đó là cho đến khi tôi thêm chế độ xem "Vấn đề", sau đó nó đột nhiên hoạt động như một sự quyến rũ ...
Agey

10

PHÂN TÍCH MÃ:

Trong Eclipse ( PyDev ), nếu bạn muốn phân tích mã bằng kiểu pep8 thì

Vào: Windows -> Preferences -> PyDev -> Editor -> Code Analysis -> tab pep8.py và chọn Warning, nhấn nút Apply và OK.

Trong mã python của bạn nếu bạn xác thực kiểu mã pep8, nó sẽ đưa ra cảnh báo cho bạn

TỰ ĐỘNG ĐỊNH DẠNG MÃ:

Trong Eclipse ( PyDev ), nếu bạn muốn Tự động Định dạng mã python bằng kiểu pep8 thì

Đi tới: Windows -> Preferences -> PyDev -> Editor -> Code Style -> Code Formatter -> nhấp vào hộp kiểm ( Sử dụng autopep8.py để định dạng bảng điều khiển? ) Nhấp vào nút Apply và OK.

Nếu bạn muốn tăng độ dài của dòng (pep8 mặc định là 79) bên dưới Sử dụng autopep8.py, bạn có thể đặt loại tham số --max-line-length=150nếu bạn đặt độ dài tối đa là 150

Nếu nhấn phím tắt tự động định dạng ( Ctrl + Shift + f ), nó sẽ tự động định dạng mã python của bạn như kiểu pep8


6

Điều đó dường như vẫn chưa được tích hợp hoàn toàn vào Pydev.

Như được đề xuất trong bài đăng này ,

[it] sẽ yêu cầu thay đổi mã bên trong pydev - một tùy chọn linh hoạt sẽ thêm tùy chọn để cho phép người dùng chọn những mẫu mà anh ta muốn so khớp để tạo siêu liên kết (và cho biết nhóm nào trong trận đấu là dòng và nhóm nào là tập tin)...

Hoặc, bạn có thể thử chơi mã hóa cứng bằng: org.python.pydev.debug.ui.PythonConsoleLineTracker (phải khá dễ nắm bắt).

Một yêu cầu không tồn tại cho việc đó, nhưng nó có vẻ là vẫn còn mở 1 năm sau khi sáng tạo của nó ...


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.