ฉันจะทำให้ IntelliJ จดจำโมดูล Python ทั่วไปได้อย่างไร


199

ฉันใช้ IntelliJ 10 IDEA Ultimate Edition

ฉันได้สร้างไฟล์ใหม่ Test.py แล้วและ IntelliJ ได้เปลี่ยนไปเป็นโหมดการแยกวิเคราะห์ Python อย่างถูกต้อง (ฉันสามารถยืนยันได้โดยการพิมพ์ "d" มันปรากฏขึ้น "def" เป็นข้อเสนอแนะและการกดปุ่มแท็บอย่างถูกต้องให้ฉัน "def:")

อย่างไรก็ตามเมื่อฉันลองใช้รหัสนี้ ...

import os

cwd = os.getcw <Ctrl-space>

มีสองสิ่งเกิดขึ้น ....

  1. ฉันได้รับขีดเส้นใต้ squggly ภายใต้ระบบปฏิบัติการและโฮเวอร์เหนือมันทำให้ฉัน "Unresolved อ้างอิง 'OS'" ข้อความ
  2. ฉันไม่ได้รับคำแนะนำที่กดปุ่ม Ctrl-space ด้านบนเมื่อฉันคาดว่าจะเห็น "getcwd"

ฉันสมมติว่านี่จะเป็นผลมาจากการที่ฉันไม่ได้ตั้งค่า IntelliJ อย่างถูกต้องเพื่อจัดการกับโมดูลหลาม แต่ฉันไม่รู้ว่ามันหายไปไหน

ผู้ใช้ IntelliJ / Python ใดสามารถช่วยฉันได้บ้าง

คำตอบ:


208

เพียงสร้างและเพิ่ม Python SDK

File -> Project Structure -> Project -> Project SDK -> new

และเลือกพา ธ การติดตั้งของ Python interpreter (เช่นC:\Python26ใน windows และ/usr/bin/python2.7Linux) เป็นโฮมพา ธ

การสนทนาที่เกี่ยวข้อง: http://devnet.jetbrains.net/thread/286883


6
ยังคงเป็นจริงในวันนี้ OSX - / usr / bin / python
ThinkBonobo

2
วันนี้ใน OSX El Capitan ฉันใช้เคล็ดลับนี้ (ขอบคุณ!); FWIW ตัวแปลภาษาไพ ธ อน (ฉันติดตั้ง 2.6 และ 2.7) อยู่ในระบบ/Libraryแต่ IntelliJ พบว่าพวกเขาทำได้ดีเมื่อฉันสร้าง virtualenv
Dawngerpony

20
เสร็จแล้วไม่มีการเปลี่ยนแปลง
OrangeDog

5
สำหรับ Mac กับรุ่น homebrew ติดตั้งของงูใหญ่ (แนะนำสำหรับ El Capitan และเกินเนื่องจากข้อ จำกัด ในไดเรกทอรีระบบ) /usr/local/bin/pythonที่คุณต้องการ
Dawngerpony

นอกจากนี้ฉันยังต้องตั้งค่า facet (ดูคำตอบด้านล่างโดย @linuts)
Janac Meena

134

คุณตั้งค่าตัวแปลภาษาไพ ธ อนแล้วหรือยัง?

เปิดโครงสร้างโครงการCTRL+ ALT+ SHIFT+S

Project settings -> Facets -> expand Python click on child -> Python Interpreter

แล้ว:

Project settings -> Modules -> Expand module -> Python -> Dependencies -> select Python module SDK


1
v12.1.4 ไม่มีตัวเลือกการตั้งค่าโครงการ> ตัวเลือกเมนู Facets แต่โซลูชันของ @ db42 ทำงานได้ดี
Trindaz

ฉันได้สร้างแง่มุมและไม่ได้ผลคำตอบของคุณคือทางออก !! wonderfull! :)
Rodislav Moldovan

แปลก ฉันไม่ทราบว่า facet คืออะไรดังนั้นฉันจึงค้นหาและหน้าด้านล่างไม่แสดง python เป็น facet ที่มีอยู่ jetbrains.com/idea/help/…
netskink

1
IntelliJ IDEA 14 Ultimate มีคุณสมบัตินี้และทำงานได้อย่างสมบูรณ์แบบโดยไม่ทำลายการตรวจจับโมดูล Java ของฉันเหมือนกับคำตอบของ db42
Patrick M

หลังจากทำเช่นนี้มันไม่ได้แสดงคำแนะนำในการสร้างโมดูลซึ่งก่อนหน้านี้มันอยู่ที่นั่น
Bharat

76

หาก Python SDK ของคุณได้รับการกำหนดค่าอย่างถูกต้องและคุณยังคงประสบปัญหาที่ไม่รู้จักตัวบิวอินให้ลอง:

File -> Invalidate Caches/Restart

2
หลังจากเพิ่ม env เสมือน 5 ครั้งแล้วสิ่งนี้ช่วยแก้ไขให้ฉันด้วย IDEA 2016.2.1
dlite922

นี่ได้รับการแก้ไขปัญหาสำหรับฉันหลังจากที่เพิ่ม env เสมือน
Andrea Bergonzo

ฉันพบว่าการเลิกและเปิดใช้งาน IntelliJ อีกครั้งทำให้ฉันคิดว่ามันเป็นสิ่งเดียวกันแม้ว่า
drevicko

18

นี่คือสิ่งที่ฉันต้องทำ (และฉันอาจลืมสิ่งสำคัญของปัญหาของฉันซึ่งก็คือนี่ไม่ใช่การตั้งค่าเป็นโครงการ Python แต่เป็นโครงการ Java ที่มีไฟล์ python บางตัวอยู่ในนั้น)

การตั้งค่าโครงการ -> โมดูล -> ปุ่มบวก (เพิ่มโมดูล) -> Python

จากนั้นคลิกปุ่ม "... " ถัดจาก Python Interpreter

ในกล่องโต้ตอบ "กำหนดค่า SDK" ที่ปรากฏขึ้นให้คลิกปุ่ม "+" เลือก "Python SDK" จากนั้นเลือกทางลัด "Python" เริ่มต้นที่ปรากฏในกล่องโต้ตอบตัวค้นหาของฉัน

รอประมาณ 5 นาที อ่านเคล็ดลับการเพิ่มผลผลิต :)

คลิกตกลง

รอให้ระบบสร้างดัชนีขึ้นมาใหม่

ไชโย! การบอกใบ้โค้ดกลับมาอีกครั้งสำหรับโมดูลของฉัน!


2
"รอประมาณ 5 นาทีอ่านเคล็ดลับการเพิ่มประสิทธิภาพ" น่ากลัว
เคอร์บี้

เห็นได้ชัดว่านี้แก้ปัญหาของฉัน (เช่นโครงการของฉันถูกสร้างขึ้นครั้งแรกเป็นโปรเจ็กต์ Java)
Andrea Bergonzo

5

การแก้ไขอื่นที่เป็นไปได้ (แก้ไขปัญหาของฉัน)

คุณอาจกำหนดค่าสภาพแวดล้อมให้ถูกต้อง แต่ด้วยเหตุผลบางอย่างมันก็ทะลุไปมา ในกรณีนี้ไปที่:

file > project settings > modules

ปรับใช้รายการของ SDK และมองหาเส้นสีแดง[invalid]ที่ท้าย ถ้าคุณเจอคุณต้องสร้าง python sdk ใหม่

เป็นไปได้ว่า SDK ที่คุณใช้งานก่อนหน้านี้มีอยู่ด้วย แต่จะไม่เป็นสีแดง ลบมัน.

ตอนนี้คุณสามารถคลิกที่newปุ่มและเพิ่ม python virtualenv ที่คุณชื่นชอบ และมันควรจะใช้งานได้แล้ว


3

ไม่กี่ขั้นตอนที่ช่วยฉัน (บางคนกล่าวถึงข้างต้น):

เปิดโครงสร้างโครงการโดย:

คำสั่ง +; (ผู้ใช้ mac) หรือคลิกขวาที่โครงการ->เปิดการตั้งค่าโมดูล

  1. Facets ->+ ->Python -><your-project>->ตกลง
  2. โมดูล->Python-> <select python interpreter>
  3. Project ->Project SDK-> <เลือก SDK ที่เกี่ยวข้อง>
  4. SDKs -><ตรวจสอบให้แน่ใจว่าเหมาะสมแล้ว>

คลิก OKคลิก

เปิดการกำหนดค่า Run / Debug โดย: Run ->Edit Configurations

  1. Python Interpreter -><ตรวจสอบให้แน่ใจว่าเป็นตัวแปลที่ถูกต้อง>

OKคลิก


1

นี่คือวิธีที่ฉันแก้ไขปัญหาของฉัน (ฉันได้นำเข้าโครงการและมันแสดงเฉพาะไฟล์ที่สร้างขึ้นใหม่ไม่แสดงข้อผิดพลาดเหล่านั้น):

1) Command + alt + R (ควบคุมในกรณีที่เป็น windows

2) หน้าต่างแก้ไขข้อบกพร่องจะปรากฏขึ้นเลือกไฟล์ของคุณแล้วกดลูกศรขวา (->) แล้วเลือกแก้ไขจากนั้นกด Enter (หน้าต่างแก้ไขการตั้งค่ากำหนดจะปรากฏขึ้น)

3) ภายใต้การกำหนดค่าที่ด้านล่างคุณสามารถเห็นข้อผิดพลาด (โปรดเลือกโมดูลที่มี python sdk ที่ถูกต้อง) ดังนั้นใน Python Interpreter ให้เลือก Use Specified Interpreter จากนั้นเลือกหลาม Python ของคุณ

(ในกรณีที่ไม่มีไพ ธ อนดาวน์โหลดปลั๊กอินหลามสำหรับ intelliJ โดยใช้ลิงค์ต่อไปนี้ https://www.jetbrains.com/help/idea/2016.3/installing-updating-and-uninstalling-repository-plugins.html

4) คลิกที่ Apply จากนั้นปิด

บิงโกมันเสร็จแล้ว


0

ใช้ไฟล์ข้อกำหนด (ดูลิงก์ไปยังเอกสารประกอบ JetBrains)

arrowในกรณีของฉันที่ฉันต้องการ ดังนั้นฉันเพิ่ม

arrow==0.7.0

โครงการของฉัน requirements.txt

จากนั้น Intellij จึงขอให้ฉันเพิ่มไลบรารีในครั้งแรกที่ฉันเขียนimport arrowด้วยสคริปต์ Python


0

ปัญหาของฉันคล้ายกับ @Toddarooski ยกเว้นว่าโมดูลที่ฉันมีภายใต้แท็บ "การพึ่งพา" ไม่มี SDK อยู่ในรายการ ฉันคลิกขวาที่ 'SDK' เลือกแก้ไขจากเมนูแบบเลื่อนลงและเลือก Python SDK ของฉัน นั่นเป็นการหลอกลวง


0

ฉันได้มันไปใช้งานหลังจากที่ฉันไม่ได้เลือกตัวเลือกต่อไปนี้ในการกำหนดค่า Run / Debug main.py

Add content roots to PYTHONPATH

Add source roots to PYTHONPATH

นี่เป็นหลังจากที่ฉันทำแคชให้ถูกต้องและเริ่มต้นใหม่


0

แม้แต่ Intellisense ของฉันใน Pycharm ก็ไม่ทำงานกับโมดูลเช่น เวลา ปัญหาในระบบของฉันก็ไม่ได้เลือกล่ามไปที่ไฟล์ -> การตั้งค่า ... (Ctrl + Alt + S) เปิดProject Interpreter

ล่ามโครงการ ในกรณีของฉันถูกเลือก ฉันเลือกล่ามไพ ธ อนที่มีอยู่ หากไม่พร้อมใช้งานคุณสามารถเพิ่มล่ามใหม่ได้

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