Pylint ข้อผิดพลาด "การนำเข้าที่ไม่ได้รับการแก้ไข" ใน Visual Studio Code


139

ฉันใช้การตั้งค่าต่อไปนี้

  • macOS v10.14 (โมฮาวี)
  • Python 3.7.1
  • Visual Studio รหัส 1.30
  • ไพลินท์ 2.2.2
  • Django 2.1.4

ฉันต้องการใช้ผ้าสำลีเพื่อทำให้ชีวิตของฉันง่ายขึ้นใน Visual Studio Code อย่างไรก็ตามสำหรับการนำเข้าทุกครั้งฉันมีสถานะ "การนำเข้าที่ไม่ได้รับการแก้ไข" แม้ในการนำเข้า Django เริ่มต้น (เช่นจากโมเดลการนำเข้า django.db)

ฉันคิดว่าเป็นเพราะไม่เห็นไฟล์ Python สภาพแวดล้อมเสมือน

ทุกอย่างทำงานได้ดี แต่มันเริ่มน่ารำคาญ

ตัวเลือกล่ามที่ฉันมีคือ Python เวอร์ชันระบบทั้งหมด ดูเหมือนว่าจะไม่เห็น Python สภาพแวดล้อมเสมือนของฉันเลย (ไม่ได้อยู่ในไดเร็กทอรีเดียวกับพื้นที่ทำงานของฉันดังนั้นส่วนนั้นจึงสมเหตุสมผล)

ถ้าฉันตั้งค่าpython.PythonPathในไฟล์settings.jsonมันจะละเว้นมันและไม่แสดงพา ธ สภาพแวดล้อมเสมือนของฉันเป็นตัวเลือก ฉันลองตั้งค่าในการตั้งค่า Python ส่วนกลางแล้ว แต่ก็ไม่ปรากฏขึ้นด้วย

มีการแก้ไขอย่างรวดเร็วเพื่อให้ใช้งานได้หรือไม่?


3
pip install pylint-djangoจากนั้นในการตั้งค่ารหัสเทียบกับให้เพิ่มสิ่งนี้:"python.linting.pylintArgs": [ "--load-plugins=pylint_django", ],
Vaibhav Vishal

@VaibhavVishal น่าเสียดายที่ฉันยังคงได้ผลลัพธ์เหมือนเดิม (เพิ่มลงในไฟล์ settings.json ของฉัน)
jAC

4
จริงๆแล้วมันเป็นปัญหา VScode ที่ตรวจพบแพ็กเกจการนำเข้าล่าช้ามากหลังจากรีสตาร์ทมันจะได้รับการแก้ไขโดยอัตโนมัติ
Anupam Haldkar

คำตอบ:


116

ในการตั้งค่าพื้นที่ทำงานของคุณคุณสามารถกำหนดเส้นทาง Python ของคุณได้ดังนี้:

{
    "python.pythonPath": "/path/to/your/venv/bin/python",
}

30
งานประเภทนี้ สำหรับการนำเข้าเฉพาะ Python จะแก้ไขสิ่งเหล่านี้ในตอนนี้ แต่ไม่ใช่โมเดลของฉันเอง (เช่น "from users.models import User" ยังบอกว่าไม่สามารถแก้ไขได้) ความคิดเกี่ยวกับที่?
jAC

7
ไม่แน่ใจ. โปรดลองโหลดหน้าต่างของโค้ด vs (จากเชลล์code <project_directory> -r) ใหม่หรือเพียงแค่รีสตาร์ท vscode
ruddra

5
ฉันไม่แน่ใจบางครั้งอาจเกิดขึ้นได้หากตั้งค่าไดเร็กทอรีพื้นที่ทำงานไม่ถูกต้อง โปรดตรวจสอบให้แน่ใจว่าmanage.pyอยู่ในรากของworkspace. นอกจากนี้โปรดตรวจสอบให้แน่ใจว่าได้กำหนดค่า
ไพลินต์

3
คุณอัจฉริยะ! เป็นเพราะพื้นที่ทำงานของฉันไม่ได้เริ่มต้นที่ระดับรากของโครงการ เมื่อฉันปรับได้ว่ามันเริ่มทำงาน ขอบคุณมาก!
jAC

1
ขอบคุณมาก! ช่วยให้ฉันผ่านพ้นปัญหาเก่า ๆ มาได้!

216

คำตอบที่ยอมรับจะไม่แก้ไขข้อผิดพลาดเมื่อนำเข้าโมดูลของตัวเอง

ใช้การตั้งค่าต่อไปนี้ในการตั้งค่าพื้นที่ทำงานของคุณ.vscode/settings.json:

"python.autoComplete.extraPaths": ["./path-to-your-code"],

ข้อมูลอ้างอิง: การแก้ไขปัญหาคำเตือนการนำเข้าที่ไม่ได้รับการแก้ไข


4
ฉันมีพื้นที่ทำงานผสมรหัสไพ ธ อนทั้งหมดอยู่ในโฟลเดอร์ย่อย การเพิ่ม. vscode ในโฟลเดอร์ย่อยจะไม่ทำงานนี่เป็นทางออกเดียวที่ใช้ได้ผล
เดซี่

1
คำตอบที่ดีที่สุดสำหรับ vscode settings.json (หากใช้ workspace.xml คำตอบที่ยอมรับอาจเป็นวิธีที่จะไป แต่ไม่สามารถพูดได้อย่างแน่นอนฉันใช้พื้นที่ทำงานแบบผสมด้วย) ขอบคุณมากสำหรับวิธีแก้ปัญหา
ไม่มี

3
นี่น่าจะเป็นคำตอบ
Richard Li

1
สิ่งนี้ได้ผลสำหรับฉัน! ลิงค์อ้างอิงอธิบายได้อย่างสมบูรณ์แบบ TL; DR; สำหรับสคริปต์โลคัลที่ผู้ใช้สร้างขึ้นในไดเร็กทอรีย่อยการตั้งค่าข้างต้นจะช่วยให้ตัวแปล python จดจำไดเร็กทอรีย่อยว่าเป็นพื้นที่ทำงานของตนเอง ต่อจากนั้นการจดจำสคริปต์ในพื้นที่ทำงานและการแก้ไขการนำเข้าเมื่อนำเข้าทั้งโมดูลหรือแต่ละวิธี
Avid Programmer

5
สวัสดีทุกคน! ฉันพบว่า ["./path-to-your-code"] สามารถเป็น ["./**"] ได้ในทุกกรณีที่ดาวคู่หมายถึงโฟลเดอร์ย่อยใด ๆ ภายใต้ไดเรกทอรีราก! นี่เป็นวิธีแก้ปัญหาที่ง่ายกว่า
alan23273850

63

ทางเลือกอื่น: ใช้อินเตอร์เฟสคำสั่ง!

Cmd/ Ctrl+ Shift+ PPython: เลือก Interpreter →เลือกอันที่มีแพ็คเกจที่คุณมองหา:

ใส่คำอธิบายภาพที่นี่


2
ในกรณีของฉันสิ่งนี้ใช้ไม่ได้ผล แต่หวังว่าจะช่วยให้ผู้อื่นแก้ไขปัญหานี้ได้
jAC

ใช่นั่นคือจิตวิญญาณไม่ใช่วิธีแก้ปัญหาที่ซับซ้อนมันเกิดอะไรขึ้นสำหรับฉัน :)
ted

สิ่งนี้ได้ผลสำหรับฉัน Incase ใคร ๆ ก็ยังสงสัยในปี 2019
Safder

@ เซฟเดอร์ไม่ใช่สำหรับฉัน using
Virtualenv

สิ่งนี้ได้ผลสำหรับฉัน เนื่องจากฉันมีโครงสร้างไดเร็กทอรีที่แต่ละโปรเจ็กต์ python ฉันมีใหม่venvด้วยสิ่งนี้ฉันชี้ไปที่ Python เฉพาะในvenvไดเร็กทอรีสำหรับโปรเจ็กต์นั้น
cryanbhu

41

ปัญหานี้ได้เปิดขึ้นแล้วใน GitHub:

ปัญหาการนำเข้าที่ไม่ได้รับการแก้ไข Python # 3840

มีสองคำตอบที่มีประโยชน์มากโดย MagnuesBrzenk และ SpenHouet

ทางออกที่ดีที่สุดสำหรับตอนนี้คือสร้างไฟล์. env ในโฟลเดอร์รูทของโปรเจ็กต์ จากนั้นเพิ่ม PYTHONPATH ให้เป็นดังนี้:

PYTHONPATH=YOUR/MODULES/PATH

และใน settings.json ของคุณเพิ่ม:

"python.envFile": ".env"

6
ขอบคุณที่ทำงานได้อย่างสมบูรณ์แบบ! "${workspaceFolder}/.env" PYTHONPATH=FolderName
KowaiiNeko

1
มีปัญหาทั่วไปเกี่ยวกับการติดตั้งที่แก้ไขได้เมื่อใช้ Microsoft Python Language Server อย่างไรก็ตามดูเหมือนว่าขณะนี้หลังจากการแก้ไขใหม่ที่อธิบายไว้ที่นี่: github.com/microsoft/python-language-server/issues/…ปัญหาได้รับการแก้ไขแล้วและสามารถเพิ่มการนำเข้าใด ๆ ด้วย ExtraPaths ดู TroubleShooting สำหรับความช่วยเหลือเพิ่มเติม: github.com/microsoft/python-language-server/blob/master/…
Tomasz Chudzik

ขอบคุณ @TomaszChudzik - การตั้งค่า: "python.autoComplete.extraPaths": ["./src"] ทำงานได้อย่างมีเสน่ห์!
Robert

อีกวิธีหนึ่งคือการเพิ่มโมดูล codebase ของคุณใน Virtualenv ของคุณ (โดยใช้add2virtualenv YOUR/MODULES/PATHตัวอย่าง) และเลือก Virtualenv นี้เป็นตัวแปล python ของคุณ
Antwan

21

หากคุณมีรหัสนี้ในsettings.jsonไฟล์ของคุณให้ลบออก:

{
    "python.jediEnabled": false
}

34
เพิ่มคำอธิบายหน่อยจะดีกว่า
ทิว

1
การแก้ไขบรรทัดนี้เป็นการเปลี่ยนแปลงครั้งใหญ่ในโครงการของคุณ บรรทัด: "python.jediEnabled": false ปิดใช้งานเซิร์ฟเวอร์ภาษาเก่าและเปิดใช้งาน Microsoft Python Language Server ใหม่ ดูที่นี่: github.com/Microsoft/vscode-python/issues/2177ฉันคิดว่าการเพิ่มการอ้างอิงที่จำเป็นให้กับ envFile ของเรานั้นง่ายกว่ามาก มันอธิบายไว้ในคำตอบอื่น ด้วย Microsoft Python Language Server Intellisense ใหม่ทำงานได้ดีขึ้นมากสำหรับฉัน
Tomasz Chudzik

สำหรับฉันแล้วมันเป็นวิธีอื่นการเปิดใช้งานเจไดใน settings.json ใช้ได้ผลกับฉัน ดูเพิ่มเติมที่นี่stackoverflow.com/a/57269144/2877493
nairb

@Tiw โดยเฉพาะอย่างยิ่งเนื่องจากคำตอบอื่น ๆ แนะนำตรงกันข้ามมาก
Neinstein

19

ฉันสามารถแก้ไขปัญหานี้ได้โดยเปิดใช้งานเจไดใน. vscode \ settings.json

"python.jediEnabled": true

อ้างอิงจากhttps://github.com/Microsoft/vscode-python/issues/3840#issuecomment-456017675


ฉันเปิดใช้งานมาตั้งแต่ต้น lucky you
lone_coder

1
รับการกำหนดค่า python 3.8 ที่ไม่รู้จักบน v2020.8.10 ของส่วนขยาย VSC python
Clocker

19

เมื่อฉันทำ > reload windowนั้นแก้ไขได้

ข้อมูลอ้างอิง: Python unresolved import issue # 3840 ความคิดเห็นของdkavraal


เพียงแค่ซ่อนคำเตือนหากฉันคลิกที่ไฟล์มันจะปรากฏขึ้นอีกครั้ง!
vijay athithya

">" ตามตัวอักษรหรือเป็นส่วนหนึ่งของข้อความแจ้ง?
Peter Mortensen

17

หากคุณมีภาพเหมือนตัวเองมากขึ้นคุณสามารถใช้การกำหนดค่า Visual Studio Code ในเมนูFilePreferencesSettings ( Ctrl+ ,) ไปที่ส่วนขยาย → หลาม

ในส่วนการวิเคราะห์: ปิดใช้งานให้เพิ่มการระงับข้อความต่อไปนี้unresolved-import:

การตั้งค่า Visual Studio Code


3
การนำเข้าที่ไม่ได้รับการแก้ไขสำหรับการนำเข้าแบบสัมพัทธ์นั้นไม่ถูกต้องอย่างชัดเจนซึ่งจะกำจัดมัน
Satya Mishra

สิ่งนี้จะแก้ไขคำเตือนเท่านั้นไม่ใช่การแก้ไขปัญหา ถ้าฉันใช้เมธอด python path คำเตือนการนำเข้าจะหายไปและยังทำงาน "drill in" ("goto definition") และ "parameter hints" ด้วย
davidfrancis

9

คุณต้องเลือกล่ามที่เกี่ยวข้องกับสภาพแวดล้อมเสมือน

ใส่คำอธิบายภาพที่นี่

คลิกที่นี่ (ที่แถบสถานะด้านล่าง):

ใส่คำอธิบายภาพที่นี่

และเลือกสภาพแวดล้อมเสมือนจริงที่คุณกำลังทำงานด้วย เสร็จแล้ว

บางครั้งแม้ว่าล่ามที่เลือกไว้ก็ใช้ไม่ได้ เพียงทำซ้ำขั้นตอนอีกครั้งและควรแก้ปัญหาได้

ใส่คำอธิบายภาพที่นี่


1
นี่เป็นปัญหาของฉัน (บน mac) และการเลือกล่ามที่เหมาะสมช่วยแก้ไขได้ ขอบคุณ!
Mahm00d

9

ไม่มีวิธีแก้ปัญหาใด ๆ ที่ใช้ได้ยกเว้นวิธีนี้ การแทนที่ "Pylance" หรือ "Microsoft" ใน settings.json แก้ไขของฉันได้

"python.languageServer": "Jedi"

7

ฉันสงสัยว่าปัญหานี้มีกี่วิธี (หรือไม่มี) ฉันลองวิธีส่วนใหญ่แล้วไม่มีอะไรได้ผลทางออกเดียวที่ได้ผลคือตั้งค่าเซิร์ฟเวอร์ภาษา python เป็น Jedi แทนที่จะเป็น Microsoft ในไฟล์ settings.json:

"python.languageServer": "Jedi"

6

ไม่มีคำตอบก่อนหน้านี้สำหรับฉัน อย่างไรก็ตามการเพิ่มทั้งสองบรรทัดด้านล่างลงในไฟล์settings.jsonของฉันทำได้

"python.analysis.disabled": [
    "unresolved-import"
],
"python.linting.pylintArgs": ["--load-plugin","pylint_protobuf"]

บรรทัดแรกเป็นเพียงการซ่อนข้อผิดพลาดที่เป็นขุย แน่นอนว่าไม่ใช่วิธีแก้ปัญหาถาวร แต่จะทำให้หน้าจอหลุดออกไป

คำตอบนี้ให้บรรทัดที่สองแก่ฉัน: VS Code PyLint Error E0602 (ตัวแปรที่ไม่ได้กำหนด) พร้อมด้วยโครงสร้าง Python ที่คอมไพล์ ProtoBuf

บางทีคนที่เข้าใจ Python มากกว่าฉันก็สามารถอธิบายได้อีก


ผู้คนดีใจที่พบว่าสิ่งนี้มีประโยชน์ แต่มีใครสามารถอธิบายคู่คีย์ - ค่าที่สองได้บ้าง
dillon.harless

4

ทางออกของฉัน

โซลูชันนี้ใช้สำหรับโครงการปัจจุบันเท่านั้น

  1. ในรูทโปรเจ็กต์สร้างโฟลเดอร์ .vscode

  2. จากนั้นสร้างไฟล์ .vscode/settings.json

  3. ในไฟล์setting.jsonให้เพิ่มบรรทัด (สำหรับ Python 3)

    {
        "python.pythonPath": "/usr/local/bin/python3",
    }
    
  4. นี่คือตัวอย่างของ Python 2

    {
        "python.pythonPath": "/usr/local/bin/python",
    }
    
  5. หากคุณไม่ทราบว่าการติดตั้ง Python ของคุณอยู่ที่ใดให้เรียกใช้คำสั่งwhich pythonหรือwhich python3บนเทอร์มินัล มันจะพิมพ์ตำแหน่ง Python

  6. ตัวอย่างนี้ใช้ได้กับPython ที่เทียบท่า - Django


4

สำหรับฉันแล้วปัญหาเกี่ยวข้องกับโครงการที่ฉันกำลังดำเนินการอยู่ ฉันใช้เวลาสักพักในการคิดออกดังนั้นฉันหวังว่านี่จะช่วยได้:

โครงสร้างโฟลเดอร์เดิม:

    root/
    __init__.py  # Empty

        folder/
            __init__.py # Empty

            sub_folder_b/
                my_code.py
            sub_folder_c/
                another_code.py

ใน another_code.py:

from folder.sub_folder_b import my_code.py

สิ่งนี้ไม่ได้ทริกเกอร์ Intellisense ใน Visual Studio Code แต่มันทำงานได้ตกลง

ในทางกลับกันการเพิ่ม "root" บนเส้นทางการนำเข้าทำให้ intellisense ทำงานได้ แต่เพิ่ม ModuleNotFoundError เมื่อดำเนินการ:

from root.folder.sub_folder_b import my_code.py

วิธีแก้คือเอา _ initไฟล์ _.py ภายในโฟลเดอร์ "directory" เหลือเพียง _ init _.py /rootตั้งอยู่ที่


3

โซลูชันจาก Shinebayar G ใช้งานได้ แต่อีกอันนี้ดูหรูหรากว่าเล็กน้อย:

คัดลอกจากPython ปัญหาการนำเข้าที่ไม่ได้รับการแก้ไข # 3840 :

ให้โครงสร้างโครงการตัวอย่างต่อไปนี้:

  • workspaceRootFolder
    • .vscode
  • ... โฟลเดอร์อื่น ๆ
  • codeFolder

สิ่งที่ฉันทำเพื่อแก้ไขปัญหานี้:

  1. เข้าไปในโฟลเดอร์พื้นที่ทำงาน (ที่นี่ workspaceRootFolder) และสร้างไฟล์. env
  2. ในไฟล์. env ที่ว่างเปล่านี้ให้เพิ่มบรรทัด PYTHONPATH = codeFolder (แทนที่ codeFolder ด้วยชื่อโฟลเดอร์ของคุณ)
  3. เพิ่ม "python.envFile": "$ {workspaceFolder} /. env" ใน settings.json
  4. รีสตาร์ท Visual Studio Code

2

สิ่งนี้ใช้ได้กับฉัน:

เปิดจานคำสั่ง ( Ctrl+ Shift+P ) แล้วเลือก "Python: Select Interpreter"

การทำเช่นนี้คุณตั้งค่าตัวแปล Python ใน Visual Studio Code


ในกรณีของฉัน ล่าม python 2 ของฉันทำงานได้ดี แค่ python 3 ของฉันไม่สามารถให้ความร่วมมือได้ดี
lone_coder

2

นั่นเกิดขึ้นเนื่องจาก Visual Studio Code ถือว่าโฟลเดอร์ปัจจุบันของคุณเป็นโฟลเดอร์หลักแทนที่จะพิจารณาโฟลเดอร์หลักจริง

วิธีแก้ไขอย่างรวดเร็วคือให้เส้นทางล่ามไปยังโฟลเดอร์หลัก

กดCommand+ Shift+ P(หรือCtrl+ Shift+ Pบนระบบอื่น ๆ ส่วนใหญ่)

พิมพ์Python interpreter

เลือกเส้นทางที่คุณติดตั้ง Python จากตัวเลือกที่มี


2

การเปลี่ยน Python: Language Server เป็น 'Jedi' ใช้ได้ผลสำหรับฉัน มันเป็น 'Windows' ในตอนแรก


1

ฉันมีวิธีแก้ไขที่แตกต่างออกไป: อินสแตนซ์ Visual Studio Code ของฉันได้รับ Virtualenv ที่เก็บไว้.venvแต่ใช้ไบนารี Python ที่ไม่ถูกต้อง มันกำลังใช้.venv/bin/python3.7; โดยใช้ตัวสลับในแถบสถานะสีน้ำเงิน

ฉันเปลี่ยนเป็นใช้.venv/bin/pythonและการนำเข้าทั้งหมดของฉันได้รับการแก้ไขอย่างถูกต้อง

ฉันไม่รู้ว่า Visual Studio Code กำลังทำอะไรอยู่เบื้องหลังเมื่อฉันทำสิ่งนี้และฉันไม่เข้าใจว่าเหตุใดจึงทำให้เกิดปัญหาของฉัน แต่สำหรับฉันแล้วนี่เป็นวิธีแก้ปัญหาที่ง่ายกว่าการแก้ไขการตั้งค่าพื้นที่ทำงานของฉันเล็กน้อย


1

ในกรณีที่เกิดข้อผิดพลาด Pylint ให้ติดตั้งสิ่งต่อไปนี้

pipenv install pylint-django

จากนั้นสร้างไฟล์. pylintrcในโฟลเดอร์รูทและเขียนสิ่งต่อไปนี้

load-plugins=pylint-django

1

หากคุณใช้งานpipenvคุณจะต้องระบุพา ธ ไปยังsettings.jsonไฟล์virtual environment.in ของคุณ ตัวอย่างเช่น :

{
    "python.pythonPath": 
           "/Users/username/.local/share/virtualenvs/Your-Virual-Env/bin/python"
}

สิ่งนี้สามารถช่วยได้


1

สำหรับฉันมันใช้งานได้ถ้าฉันตั้งค่าพา ธ สำหรับ python, pylint และ autopep8 ไปยังพา ธ สภาพแวดล้อมโลคัล

สำหรับพื้นที่ทำงานของคุณให้เพิ่ม / เปลี่ยนแปลงสิ่งนี้:

"python.pythonPath": "...\\your_path\\.venv\\Scripts\\python.exe",
"python.linting.pylintPath": "...\\your_path\\.venv\\Scripts\\pylint.exe",
"python.formatting.autopep8Path": "...\\your_path\\.venv\\Scripts\\autopep8.exe",

บันทึกและรีสตาร์ท VS Code ด้วยพื้นที่ทำงาน เสร็จแล้ว!


สิ่งนี้ใช้ได้ผลสำหรับฉันเช่นกันโดยเฉพาะการตั้งค่า "python.linting.pylintPath" คือสิ่งที่แก้ไขปัญหาได้ ฉันไม่เคยมีปัญหานี้จนกว่าฉันจะอัปเกรดเป็น Python 3.9 ฉันเดาว่ามีเส้นทางไพลินต์เริ่มต้นที่พวกเขาใช้อยู่
areed1192

0

ฉันได้รับการแก้ไขข้อผิดพลาดที่นำเข้าโดยCtrl+ +Shift Pพิมพ์ "Preferences settings" และเลือกตัวเลือกPreferences Open Settings (JSON)

และแอดไลน์ "python.pythonPath": "/usr/bin/"

ดังนั้นเนื้อหา JSON ควรมีลักษณะดังนี้:

{
    "python.pythonPath": "/usr/bin/"
}

เก็บบรรทัดการกำหนดค่าอื่น ๆ ไว้หากมีอยู่ สิ่งนี้ควรนำเข้าโมดูลทั้งหมดที่คุณติดตั้งโดยใช้ PIP สำหรับการเติมข้อความอัตโนมัติ


0

วิธีแก้ปัญหาของฉันคือเปิด Visual Studio Code ในไดเรกทอรีก่อนหน้า


"ไดเรกทอรีก่อนหน้า"หมายความว่าอย่างไร คุณหมายถึง"ไดเรกทอรีหลัก"หรือไม่ หรืออย่างอื่น?
Peter Mortensen

ฉันเปิด VSCode กับคอนโซลในไดเรกทอรีก่อนโครงการเท่านั้น
Jeremias Caceres

0

ในกรณีของฉันฉันได้เปิดใช้งานสภาพแวดล้อมCondaแล้ว แต่ฉันยังต้องการให้โมดูล Python ในเครื่องพร้อมใช้งานสำหรับการเติมข้อความอัตโนมัติการกำหนดการแอบมอง ฯลฯ

ฉันลองใช้วิธีแก้ปัญหามากมายเช่นเพิ่มรายการเส้นทาง Python เป็นต้น แต่ในที่สุดสิ่งที่แก้ไขได้สำหรับฉันคือการสร้างลิงก์สัญลักษณ์จาก Conda lib/python{your version}/site-packagesไปยังโมดูลในเครื่องของฉัน


0

ฉันมีห้องสมุดหนึ่งแห่งซึ่งผิดพลาดเมื่อพยายามรวมไว้โดยใช้บริการภาษาเจไดและใช้งานได้ดีหากไม่มีมัน (เช่น C # one)

ไลบรารีเป็น jsonslicer และขึ้นอยู่กับไลบรารี C ภายนอกที่ฉันติดตั้งไว้ /usr/local/libภายนอกผมติดตั้งลงใน อาจมีบางอย่างเกี่ยวข้องกับมัน?

ฉันติดตั้งบริการ Jedi และไลบรารีในสภาพแวดล้อมCondaของฉันและใช้สภาพแวดล้อมนั้นภายใน Visual Studio ทำงานได้ดีที่รันไทม์และในเทอร์มินัลของฉัน แต่ไม่ใช่เมื่อตรวจสอบปัญหาในไฟล์ต้นทางและแสดงเป็นข้อผิดพลาด


0

ขั้นแรกตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งปลั๊กอินแล้ว แต่เป็นไปได้ว่าไดเร็กทอรีพื้นที่ทำงานไม่ได้รับการตั้งค่าอย่างถูกต้อง เพียงตรวจสอบ Pylint และแก้ไขไฟล์ settings.json ที่อยู่ภายใต้

{
    "python.pythonPath": "/usr/local/bin/python3",
    "git.ignoreLimitWarning": true
}

คุณหมายถึงอะไร"check Pylint" ? กล่องกาเครื่องหมาย? ว่ามีอยู่จริง / ติดตั้งแล้ว? อื่น ๆ อีก? ตอบกลับโดยแก้ไขคำตอบของคุณไม่ใช่ที่นี่ในความคิดเห็น (และไม่มี "แก้ไข:", "อัปเดต:" หรือคล้ายกัน)
Peter Mortensen

0

ติดตั้งโค้ดรันเนอร์และเพิ่มโค้ดด้านล่างในโฟลเดอร์ settings.json:

    "code-runner.executorMap": {
        "python": "python3 -u",
    }

"python": "(Python ปฏิบัติการได้ด้วยโมดูลหรือพา ธ ) -u",


"code-runner" คืออะไร? คุณสามารถเพิ่มข้อมูลอ้างอิงได้หรือไม่ (โดยแก้ไขคำตอบไม่ใช่ที่นี่ในความคิดเห็น)
Peter Mortensen

0

ฉันประสบปัญหานี้ในสามวิธี แม้ว่าแต่ละข้อจะมีคำตอบสำหรับคำถามนี้ แต่ฉันก็คิดที่จะรวบรวมทุกอย่างเข้าด้วยกัน

  1. ก่อนอื่นฉันได้รับ "การนำเข้าที่ยังไม่ได้แก้ไข" ในขณะที่นำเข้าบางโมดูลและฉันสังเกตเห็นว่าการติดตั้งของฉันเกิดขึ้นใน global pip แทนที่จะเป็นสภาพแวดล้อมเสมือน

    ปัญหานี้เป็นเพราะล่าม Python คุณต้องเลือกล่ามใน Visual Studio รหัสโดยใช้Shift+ Ctrl+ และประเภทแล้วP Select Python Interpreterเลือกล่ามVenvของคุณที่นี่

  2. ปัญหาที่สองคือ: การเปลี่ยนแปลงข้างต้นไม่สามารถแก้ไขปัญหาของฉันได้อย่างสมบูรณ์ เวลานี้มันเป็นเพราะไฟล์settings.json หากคุณไม่มีไฟล์settings.jsonในไดเร็กทอรีโปรเจ็กต์ของคุณให้สร้างไฟล์และเพิ่มบรรทัดต่อไปนี้:

        {
            "python.pythonPath": "apis/bin/python"
        }
    

    โดยพื้นฐานแล้วจะบอก Visual Studio Code ให้ใช้ล่าม Python ที่อยู่ใน Venv ของคุณ

  3. ปัญหาที่สามคือในขณะที่นำเข้าโมดูลหรือไฟล์ Python แบบกำหนดเองในโปรแกรมอื่น สำหรับสิ่งนี้คุณต้องเข้าใจโครงสร้างโฟลเดอร์ เนื่องจาก Python ใน venv อยู่ภายใน bin คุณจะต้องระบุโฟลเดอร์ของโมดูลของคุณ (โดยส่วนใหญ่เป็นโฟลเดอร์ของแอปพลิเคชัน) ในกรณีของฉันมันเป็นapp,

        from app.models import setup_db
    

    ด้วยวาจานำเข้า setup_db จาก models.py อยู่ในโฟลเดอร์แอป


0

ฉันมีปัญหาเดียวกันกับ python 3.8.5 โดยใช้ venv, vscode 1.48.2 ฉันพบวิธีแก้ปัญหาแล้ว ใน (โฟลเดอร์ env) / lib / site-Packages ไม่มีแพ็คเกจ ฉันใช้การตั้งค่านี้ (.vscode / settings.json)

   {
        "python.autoComplete.extraPaths": [
            "./**",
        ],
        "python.pythonPath": "env\\Scripts\\python.exe",
        "python.languageServer": "Microsoft"
   }
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.