วิธีรวม pep8.py ใน Eclipse


90

พื้นหลังเล็กน้อย:

  • PEP 8เป็นคู่มือสำหรับสไตล์หลามรหัส มันมีข้อตกลงที่โปรแกรมเมอร์ python ทุกคนควรปฏิบัติตาม
  • pep8.pyเป็นสคริปต์ (มีประโยชน์มาก) ที่ตรวจสอบการจัดรูปแบบโค้ดของสคริปต์ python ที่กำหนดตาม PEP 8
  • Eclipseเป็น IDE ที่ยอดเยี่ยม ด้วยส่วนขยายPydevมันสามารถใช้เพื่อพัฒนา Python

ฉันเรียกใช้ pep8.py ด้วยตนเองเมื่อฉันเขียนสคริปต์ แต่ด้วยโครงการที่ใหญ่กว่าฉันชอบใช้ Eclipse การรวม pep8.py ใน Eclipse / Pydev จะมีประโยชน์มากดังนั้นจึงสามารถเรียกใช้โดยอัตโนมัติในไฟล์ทั้งหมดในโครงการและชี้ไปที่บรรทัดที่มีคำเตือน อาจมีวิธีที่ชัดเจนในการทำ แต่ฉันยังไม่พบ

คำถามคือจะรวม pep8.py ใน Eclipse ได้อย่างไร?


3
ตอนนี้มีการรวม pep8 เริ่มต้นแล้ว ดู: stackoverflow.com/questions/399956/…
Fabio Zadrozny

1
เนื่องจากสถานการณ์เปลี่ยนไปตั้งแต่คุณยอมรับคำตอบของDmitry Kochkinฉันขอแนะนำให้คุณเปลี่ยนคำตอบที่ยอมรับเป็นคำตอบของFabio Zadroznyหรือคำตอบของangelo.bixlyได้หรือไม่ สิ่งนี้จะช่วยให้ผู้เข้าชมในอนาคตที่เช่นเดียวกับตัวฉันเองมาถึงคำถามนี้จาก Google ทำให้เราสามารถค้นหาข้อมูลที่เป็นปัจจุบันมากที่สุดก่อนมิฉะนั้นอาจใช้เวลานานกว่าคำตอบเหล่านี้จะถูกส่งไปที่ด้านบน
Mark Booth

คำตอบ:


87

สำหรับ PyDev 2.3.0 pep8จะรวมอยู่ใน PyDev ตามค่าเริ่มต้นแม้จะจัดส่งด้วยเวอร์ชันเริ่มต้นก็ตาม

เปิดหน้าต่าง> การตั้งค่า

ต้องเปิดใช้งานใน PyDev> Editor> Code Analysis> pep8.py

ข้อผิดพลาด / คำเตือนควรแสดงเป็นเครื่องหมาย (เช่นเดียวกับสิ่งอื่น ๆ ในการวิเคราะห์รหัสปกติ)

ในกรณีที่ไฟล์ไม่ได้วิเคราะห์ดูhttps://stackoverflow.com/a/31001619/832230


6
มันแสดงคำเตือนมากมายตามค่าเริ่มต้น อย่างไรก็ตามเมื่อฉันเรียกใช้จากบรรทัดคำสั่งมันจะแสดงมากยิ่งขึ้น ฉันจะโน้มน้าวให้แสดงคำเตือนทั้งหมดใน Eclipse ตามที่แสดงเมื่อเรียกใช้จากบรรทัดคำสั่งได้อย่างไร ตัวเลือกเหมือนกัน นอกจากนี้การเปลี่ยนทิศทางเอาต์พุต pep8 ไปยังคอนโซลไม่ได้ทำอะไรเลย
Krystian Cybulski

2
ขณะนี้ PyDev ใช้เวอร์ชันเก่ากว่าเนื่องจากใช้เวอร์ชัน Jython ภายใน (ซึ่งปัจจุบันอยู่ที่ 2.2.1) มีแผนที่จะเรียกใช้จากภายนอกเพื่อรับผลลัพธ์หรืออัปเดต Jython ภายในเพื่อให้รองรับ pep8.py เวอร์ชันใหม่กว่า
Fabio Zadrozny

เห็นได้ชัดว่าสิ่งนี้ใช้ไม่ได้กับ PyDev 4.2.0 ไม่มีการแสดงเครื่องหมายใด ๆ ทั้งในโหมดคำเตือนหรือโหมดข้อผิดพลาด
Luís de Sousa

1
เพิ่งทดสอบที่นี่และใช้งานได้สำหรับฉัน ... โปรดทราบว่าแหล่งที่มาของคุณต้องอยู่ภายใต้โฟลเดอร์ซอร์ส (เช่นใน PYTHONPATH) เพื่อให้ใช้งานได้ (หากยังไม่เป็นเช่นนั้นโปรดรายงานปัญหาที่ตัวติดตาม pydev ).
Fabio Zadrozny

มันเริ่มทำงานเมื่อฉันตั้งค่าเป็นโหมดข้อผิดพลาด นอกจากนี้ยังมีความล่าช้าจากช่วงเวลาที่คุณเปิดใช้งานจนกระทั่งเริ่มทำเครื่องหมายรหัส
Luís de Sousa

26

ฉันไม่รู้ว่าจะรวมเข้ากับโปรเจ็กต์ทั้งหมดได้อย่างไร แต่ฉันใช้มันเป็นเครื่องมือภายนอกเพื่อวิเคราะห์ไฟล์แต่ละไฟล์

โปรดทราบว่าpycodestyleแพ็กเกจนี้เป็นสิ่งทดแทนอย่างเป็นทางการและเป็นเวอร์ชันที่ใหม่กว่าของpep8แพ็กเกจ ในการติดตั้งให้เรียกใช้:

$ sudo pip install --upgrade pycodestyle

ถัดไปใน Eclipse:

  1. เลือกRun-External Tools-External Tools Configurations ...
  2. เลือกProgram root node
  3. กดการกำหนดค่าการเปิดตัวใหม่ปุ่ม
  4. ป้อนชื่อสำหรับการกำหนดค่าการเปิดตัวของคุณ ฉันใช้pycodestyle.
  5. กรอกข้อมูลในช่องต่อไปนี้:

    สถานที่ -${system_path:pycodestyle}

    ไดเร็กทอรีการทำงาน -${container_loc}

    อาร์กิวเมนต์ - "${resource_name}"(ใช้ไฟล์ที่ใช้งานอยู่ในปัจจุบัน)

ไปที่แท็บCommonและยืนยันว่าAllocate Consoleเลือกช่องทำเครื่องหมายแล้ว

ข้อดีของวิธีนี้คือคุณสามารถใช้แพ็คเกจเวอร์ชันล่าสุดได้และไม่ จำกัด เฉพาะเวอร์ชันเก่าที่มาพร้อมกับ PyDev และหากคุณสงสัยเกี่ยวกับการตั้งค่าpylintในลักษณะที่คล้ายกันโปรดดูคำตอบนี้


1
หากคุณได้รับข้อผิดพลาดการอ้างอิงตัวแปรการเลือกที่ว่างเปล่า: $ {container_loc}อย่าลืมเพิ่มโฟลเดอร์ต้นทางของคุณไปยัง PYTHONPATH (อาจไม่มีหากคุณนำเข้าโครงการที่มีอยู่ไปยังพื้นที่ทำงาน) คลิกขวาที่ชื่อโครงการ> Properties> PyDev - PYTHONPATH> แหล่งที่มาของโฟลเดอร์แท็บและคลิกโฟลเดอร์ต้นทางเพิ่ม ควรจะทำงานอย่างมีเสน่ห์
berni

2
ตอนนี้มีการรวม pep8 เริ่มต้นแล้ว ดู: stackoverflow.com/a/8532188/110451
Fabio Zadrozny

1
สิ่งนี้ไม่เป็นประโยชน์สำหรับการตรวจสอบ pep8 เนื่องจากส่วนใหญ่มีอยู่ใน Eclispe - แต่ฉันพบว่ามันยอดเยี่ยมสำหรับ autopep8! ขอบคุณ
tom stratton

12
  1. เปิด Eclipse ของคุณ
  2. ไปที่วิธีใช้และเลือกติดตั้งซอฟต์แวร์ใหม่
  3. คลิกปุ่มเพิ่มและกล่องโต้ตอบ "เพิ่มที่เก็บ" จะปรากฏขึ้น
  4. คุณสามารถใช้ชื่อใดก็ได้ที่คุณต้องการ (ฉันใช้ PyDev)
  5. สำหรับตำแหน่งให้ป้อน "http://pydev.org/updates"
  6. คลิกตกลง
  7. ตอนนี้คุณอยู่ในขั้นตอนการติดตั้ง เพียงแค่รอให้เสร็จสิ้น
  8. หลังการติดตั้งปิด Eclipse แล้วเปิดอีกครั้ง
  9. เมื่อติดตั้ง PyDev ใน Eclipse แล้วให้ไปที่ Window-> Preferences
  10. เลือก PyDev-> Editor-> Code Analysis
  11. ไปที่แท็บ pep8.py
  12. เลือกปุ่มตัวเลือกสำหรับคำเตือนแล้วคลิกตกลง

แค่นั้นแหละ. Eclipse IDE ของคุณถูกรวมเข้ากับ PEP8 แล้ว หากต้องการเรียกใช้ pep8.py โดยอัตโนมัติให้คลิกขวาที่ตัวแก้ไขโครงการของคุณ เลือก PyDev แล้วคลิก "การวิเคราะห์โค้ด" ในแท็บปัญหาของคุณในพื้นที่ทำงานของคุณคุณจะเห็นคำเตือนที่ชี้ไปที่บรรทัดที่คุณได้ละเมิดใน PEP8 (หากคุณละเมิด)


สิ่งที่แปลกมากคือไม่ว่าฉันจะพยายามกำหนดค่า pep8 อย่างหนักแค่ไหนคำเตือนและเครื่องหมายข้อมูลในโปรแกรมแก้ไขก็ไม่ปรากฏขึ้น จนกระทั่งฉันเพิ่มมุมมอง "ปัญหา" ทันใดนั้นมันก็กลายเป็นเสน่ห์ ...
Agey

10

การวิเคราะห์รหัส:

ใน Eclipse ( PyDev ) หากคุณต้องการวิเคราะห์โค้ดโดยใช้สไตล์ pep8 แล้ว

ไปที่: Windows -> Preferences -> PyDev -> Editor -> Code Analysis -> แท็บpep8.pyแล้วเลือกคำเตือนคลิกใช้และปุ่มตกลง

ในรหัส python ของคุณหากคุณตรวจสอบความถูกต้องของรูปแบบการเข้ารหัส pep8 มันจะเตือน

การจัดรูปแบบรหัสอัตโนมัติ:

ใน Eclipse ( PyDev ) หากคุณต้องการจัดรูปแบบอัตโนมัติรหัส pythonโดยใช้สไตล์ pep8 แล้ว

ไปที่: Windows -> Preferences -> PyDev -> Editor -> Code Style -> Code Formatter -> คลิกที่ช่องทำเครื่องหมาย ( Use autopep8.py for console formatting? ) คลิกปุ่ม Apply และ OK

หากคุณต้องการเพิ่มความยาวของบรรทัด (ค่าเริ่มต้นของ pep8 คือ 79) ด้านล่างใช้ autopep8.py คุณสามารถตั้งค่าประเภทพารามิเตอร์ได้--max-line-length=150หากคุณตั้งค่าความยาวสูงสุดเป็น 150

หากกดทางลัดจัดรูปแบบอัตโนมัติ ( Ctrl + Shift + f ) มันจะจัดรูปแบบโค้ด python ของคุณโดยอัตโนมัติเหมือนสไตล์ pep8


6

ที่ยังไม่รวมเข้ากับ Pydev อย่างสมบูรณ์

เป็นข้อเสนอแนะในการโพสต์นี้ ,

[มัน] จะต้องมีการเปลี่ยนรหัสภายใน pydev - ตัวเลือกที่ยืดหยุ่นจะเพิ่มค่ากำหนดเพื่อให้ผู้ใช้เลือกรูปแบบที่ต้องการจับคู่เพื่อสร้างไฮเปอร์ลิงก์ (และบอกว่ากลุ่มใดในการจับคู่คือบรรทัดและอันไหนคือ ไฟล์)...

หรือคุณสามารถลองเล่นฮาร์ดโค้ดกับ: org.python.pydev.debug.ui.PythonConsoleLineTracker (ควรจะเข้าใจได้ง่าย)

มีคำขอเพียงแค่นั้น แต่ดูเหมือนว่าจะยังคงเปิดอยู่ 1 ปีหลังจากการสร้าง ...


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.