簡體   English   中英

將源根添加到 Python 項目結構 VS Code

[英]Adding source root to Python project structure VS Code

這個問題似乎已經很普遍了一段時間,但在搜索了 stackoverflow、reddit 和 vscode 文檔后,我很想找到答案。 我想我會在這里再試一次。 在 PyCharm 中,您可以轉到“項目結構”並添加源根文件夾以解決相關的導入和 pylint 問題,如下所述: https ://www.jetbrains.com/help/pycharm/configuring-project-structure.html。

有沒有辦法在 VSCode 中實現這個功能?

我只是浪費了 2 個小時試圖讓 pylint 識別從本地路徑導入的模塊,但終於讓它工作了。

我將根添加到“python.autoComplete.extraPaths”,但這僅影響自動完成,而不影響 pylint!

為此,我必須在 virtualenv 中安裝該項目。

首先,確保您指向 virtualenv 中的解釋器。 這是我的 VSCODE 工作區設置的樣子:

{
  "python.linting.pylintEnabled": true,
  "python.pythonPath": "/home/andrew/virtualenvs/eks/bin/python",
  "python.linting.pylintPath": "/home/andrew/virtualenvs/eks/bin/pylint",
  "python.autoComplete.extraPaths": ["/other/repos/eks"],
  "python.linting.pylintArgs": [
    "--disable=C0111", // missing docstring
    "--load-plugins=pylint_django"
  ],
}

其次,在 virtualenv 處於活動狀態時,將當前目錄安裝為符號鏈接,如下所示:

pip install -e .

為了使項目可安裝,您需要一個setup.py文件,它只需要如下所示:

from setuptools import setup

setup()

當然,您可以使用setup.cfg文件的設置機制來控制依賴項,但是如果您遇到此問題,那么您很可能不會在您的項目中這樣做,因此以上是您需要的最低限度工作。

當然,這一切都是有道理的。 pylint 是如何指向你的 virtualenv 中的 python 解釋器的,它應該知道其他地方的 rot 目錄?

聽起來您在使用"python.autoComplete.extraPaths"設置,該設置可讓您列出路徑數組以查找用於自動完成的包。 至於 Pylint, 通過.env文件設置你的PYTHONPATH可能是你所追求的。

這是我在這個問題上搜索了一段時間后發現的。

  • 對於簡單的工作空間,可以在設置中搜索extraPath ,並將相對路徑添加到“Python > Analysis: Extra Paths”。 假設最新版本的 vscode 和 pylance。
  • 對於多根工作區,事實證明 Microsoft 仍在改進甚至辯論如何獲取 PYTHONPATH(請參閱https://github.com/microsoft/pylance-release/issues/159 )。 如果您想從其他文件夾中引用一個文件夾模塊,我個人仍然更喜歡前面提到的extraPath --- 只是這次您將放入當前文件夾的相對路徑(在磁盤上),例如../<your another folder>/src/python 並且設置在“文件夾設置”而不是“用戶”或“工作區”設置中。 這也必須為每個根文件夾完成。

希望以上有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM