VSCode 작업 공간의 루트! = Python 진입 점에서 IntelliSense 설정

소개



Visual Studio Code (이후 VSCode)로 Python 프로그램을 작성하는 것이 편리합니다. 편리하게 Microsoft의 Python 확장 기능을 넣고있는 분도 많다고 생각합니다.

하지만 아래 그림과 같이 스크립트는 제대로 움직이는데, 자작의 패키지나 모듈에 대해 IntelliSense가 이상한 경고를 내거나 코드 완성이 효과가 없을까요?


경고 예: Import "XXXXXX" could not be resolved Pylance (reportMissingImports)
사용자 또는 작업 공간에 설정된 경고 및 코드 완성에 사용되는 Python 언어 서버라는 유형에 따라 작업 공간의 루트 폴더와 이동하려는 Python 스크립트의 진입 점이 다른 경우 발생합니다.

이대로는 모처럼의 VSCode의 매력이 반감해 버리므로, 설정을 변경해, 경고를 없애고 코드 완성이 효과가 있게 합니다.

다음은 위 이미지의 폴더 구조를 예로 들어 설명합니다.
(가상 사례로서 개발자와 다른 사용자에게 프로그램을 작업 공간 폴더별로 배포하지만 사용자에게 RunThis.bat 배치 파일을 요청하고, DoNotTouchThisFolder 라고 하는 경우를 생각했습니다.)

선인의 기사



  • VSCode · 인텔리센스가 효과가 없습니까? 해소
  • 기본적으로 여기를 보시면 해결하겠지만, 아래에서는 Python 언어 서버가 Pylance 일 때도 언급합니다.


  • 환경


  • Windows 10 1909 64 비트 버전
  • Python 3.7.1 (Anaconda)
  • Visual Studio Code 1.48.1
  • Python 확장 기능 v2020.8.103604
  • Pylance 확장 기능 v2020.8.2


  • 설정



    Python 언어 서버에 따라 설정 값이 다릅니다.

    파이썬 언어 서버가 마이크로 소프트 일 때



    사용자 또는 작업 공간의 settings.json에서 "python.languageServer": "Microsoft"가 될 때의 이야기입니다. Microsoft의 Python 확장 기능을 넣어 포치포치 누르고 있으면 이렇게 되어 있는 사람도 있을까 생각합니다.
    이 때 작업 공간의 settings.json에 다음을 추가합니다.

    settings.json
    {
        (ほかの設定), 
        "python.autoComplete.extraPaths": [
            "DoNotTouchThisFolder"
        ], 
        (ほかの設定)
    }
    

    ※ 사용자 or 작업 공간의 settings.json"python.jediEnabled": false 추가해야 할 수도 있습니다.

    Python 언어 서버가 Pylance일 때



    사용자 또는 작업 공간의 settings.json에서 "python.languageServer": "Pylance"가 될 때의 이야기입니다. Python 확장 기능 외에도 Microsoft가 (이 기사 작성 시점에서) 최근에 출시 한 확장 기능 Pylance을 넣고 딱딱하게 누르면 이렇게되어있는 사람도 있을까 생각합니다.
    이 때 작업 공간의 settings.json에 다음을 추가합니다.

    settings.json
    {
        (ほかの設定), 
        "python.analysis.extraPaths": [
            "DoNotTouchThisFolder"
        ], 
        (ほかの設定)
    }
    

    ※ 사용자 or 작업 공간의 settings.json"python.jediEnabled": false 추가해야 할 수도 있습니다.

    파이썬 언어 서버가 Jedi 인 경우 확실하지 않습니다.



    결과




    😉

    좋은 웹페이지 즐겨찾기