![](/img/trans.png)
[英]VS Code Python 'autocompletion' and 'go to definition' for GAE not working
[英]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_bar
從my_pkg/my_pkg/foo/main.py
。 所以我像這樣導入它:
from my_pkg.foo.main import func_bar
Go to definition
在 PyCharm 中工作正常。 我也像這樣在本地安裝my_pkg
: cd ~/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_pkg
和my_pkg/my_pkg
目錄中都有__init__.py
。 所以 VS Code 選擇根my_pkg
作為參照物。
所以為了解決這個問題,我只需要刪除my_pkg/__init__.py
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.