我经常在PyCharm中使用“跳转到声明”的键盘快捷方式。我希望我的项目结构能够方便地支持在多个文件夹/目录中拥有源代码文件。不幸的是,当尝试跳转到另一个目录中的函数调用时,“跳转到声明”似乎失败了。有没有办法解决这个问题或者教它去哪里跳?它似乎没有索引/搜索嵌套目录,尽管这些目录是在同一个项目。因此,我不得不将我的所有源代码保存在同一个目录中,这样我就可以在PyCharm中使用“跳转到声明”.
我正在通过以下解决方案从其他文件夹导入文件:Importing files from different folder
# some_file.py
import sys
sys.path.insert(0, '/path/to/application/app/folder')
import file但是,当我试图通过file.function()的键盘快捷方式“跳转到声明”时,它会失败,因为它不在当前文件的同一个目录中。
编辑:
所以我创建了@Code-学徒建议的结构。

然后我添加了@Lukasz建议的__init__.py,它起了作用:

现在回到我的另一个项目,__init__.py似乎不起作用。让我修补一下,看看有什么区别。
Edit2:
有趣,所以如果将相同的文件,bar.py添加到包含__init__.py文件的原始项目的子文件夹中,我就不能跳到那里声明。所以这个项目或者PyCharm对我的项目的解释肯定有问题。这是一个很大的项目,也许是有什么东西把它扔了。
Edit3:
最后一个问题是我犯了一个愚蠢的错误。谢谢你们!
发布于 2018-02-20 23:53:37
你能添加一些代码和文件结构吗?
您需要文件夹中的空__init__.py文件使其成为python包,因此导入将适用于模块。
您还可以导入:
from app.folder1 import name [as sub_name]发布于 2018-02-20 23:41:17
让我们调用您的项目目录PROJECT_ROOT。您可以在此文件夹中创建任意目录结构。例如,假设您在一个bar.py文件夹中创建foo,在PROJECT_ROOT中创建main.py
PROJECT_ROOT
|_ foo
|_ bar.py
|_ main.py在main.py中,使用标准导入:
import foo.bar
foo.bar.do_something()现在将光标移动到do_something()在main.py中的用法,然后按Ctrl+B,这将跳到foo/bar.py中的定义。
https://stackoverflow.com/questions/48895867
复制相似问题