转到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

我正在尝试从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_-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,它可以很好地用于外部安装的软件包。

我发现了问题:

我在root
my\u-pkg
my\u-pkg/my\u-pkg
目录中都有
\uu-init\uuuuuuuuuuuuuuuuuupy
。因此VS Code选择根my_pkg作为引用

所以为了解决这个问题,我只需要删除
my_-pkg/\uuu-init\uuuu.py