转到VS代码中本地python包的定义
我正在尝试从PyCharm切换到VS代码来编写python代码。但是我在通过代码进行导航时遇到了问题(特别是转到VS代码中本地python包的定义,python,visual-studio-code,Python,Visual Studio Code,我正在尝试从PyCharm切换到VS代码来编写python代码。但是我在通过代码进行导航时遇到了问题(特别是转到definition) 我的项目结构如下: - my_pkg setup.py README.md - my_pkg - celery tasks.py - foo main.py 在my_-pkg/my_-pkg/芹菜/tasks.py中,我需要func_-bar来自my_-p
转到definition
)
我的项目结构如下:
- my_pkg
setup.py
README.md
- my_pkg
- celery
tasks.py
- foo
main.py
在my_-pkg/my_-pkg/芹菜/tasks.py
中,我需要func_-bar
来自my_-pkg/my_-pkg/foo/main.py
。所以我像这样导入它:
- my_pkg
setup.py
README.md
- my_pkg
- celery
tasks.py
- foo
main.py
来自my_pkg.foo.main导入功能条
转到定义
在PyCharm中运行良好。
我也像这样在本地安装myu-pkg
:cd~/myu-pkg;pip安装-e。
但在VSCode中,如果使用此^^导入,我无法转到定义,而是必须通过以下方式之一执行此操作:
来自my_pkg.my_pkg.foo.main导入功能条
或
from..my_pkg.foo.main导入功能条
问题:在这种情况下,转到definition
工作,但我的代码不再工作
例如,在ipython中:
来自my_pkg.my_pkg.foo.main导入功能条
引发ModuleNotFoundError:没有名为'my_pkg.mypkg'的模块
我在使用python 3.6.4的macOS上使用VS Code1.26.1版(1.26.1)
我的工作区设置:
{
"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,它可以很好地用于外部安装的软件包。我发现了问题:
我在rootmy\u-pkg
和my\u-pkg/my\u-pkg
目录中都有\uu-init\uuuuuuuuuuuuuuuuuupy
。因此VS Code选择根my_pkg
作为引用
所以为了解决这个问题,我只需要删除my_-pkg/\uuu-init\uuuu.py