簡體   English   中英

轉到 VS Code 中本地 python 包的定義

[英]Go to definition for local python packages in VS Code

我正在嘗試從 PyCharm 切換到 VS Code 來編寫 python 代碼。 但是我在通過我的代碼導航(特別是Go to definition )時遇到了問題。

我的項目結構是這樣的:

- my_pkg
    setup.py
    README.md
    - my_pkg
        - celery
            tasks.py
        - foo 
            main.py

my_pkg/my_pkg/celery/tasks.py我需要func_barmy_pkg/my_pkg/foo/main.py 所以我像這樣導入它:

from my_pkg.foo.main import func_bar

Go to definition在 PyCharm 中工作正常。 我也像這樣在本地安裝my_pkgcd ~/my_pkg; pip install -e . cd ~/my_pkg; pip install -e .

但是在 VSCode 中,如果我使用這個 ^^ 導入,我將無法進入定義,而是必須通過以下方式之一進行:

from my_pkg.my_pkg.foo.main import func_bar

或者

from ..my_pkg.foo.main import func_bar

問題:在這些情況下, Go to definition工作,但我的代碼不再工作。

例如在 ipython 中:

from my_pkg.my_pkg.foo.main import func_bar引發ModuleNotFoundError: No module named 'my_pkg.mypkg'

我在 macOS 上使用 VS Code Version 1.26.1 (1.26.1)和 python 3.6.4。

我的工作區設置:

{
    "python.pythonPath": "${workspaceRoot}/virtual/bin/python",
    "python.venvPath": "${workspaceRoot}/virtual",
    "python.autoComplete.extraPaths": [
        "${workspaceRoot}/virtual/lib/python3.6/site-packages"
    ],
    "python.unitTest.pyTestEnabled": true
}

它適用於通過 pip 外部安裝的軟件包。

我發現了問題:

我在根my_pkgmy_pkg/my_pkg目錄中都有__init__.py 所以 VS Code 選擇根my_pkg作為參照物。

所以為了解決這個問題,我只需要刪除my_pkg/__init__.py

暫無
暫無

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

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