Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当文件位于另一个文件夹/目录中时跳转到声明_Python_Pycharm - Fatal编程技术网

Python 当文件位于另一个文件夹/目录中时跳转到声明

Python 当文件位于另一个文件夹/目录中时跳转到声明,python,pycharm,Python,Pycharm,我在PyCharm中使用键盘快捷键“跳转到声明”。我希望我的项目结构能够方便地支持在多个文件夹/目录中包含源代码文件。不幸的是,当试图跳转到存在于另一个目录中的函数调用时,“跳转到声明”似乎失败了。有没有办法解决这个问题或教它跳到哪里?尽管嵌套目录在同一个项目中,但它似乎没有索引/搜索到这些目录。所以我不得不将所有的源代码都保存在同一个目录中,这样我就可以在PyCharm中使用“跳转到声明”了 我正在通过此解决方案从其他文件夹导入文件: 但当我尝试通过file.function()的键盘快捷键

我在PyCharm中使用键盘快捷键“跳转到声明”。我希望我的项目结构能够方便地支持在多个文件夹/目录中包含源代码文件。不幸的是,当试图跳转到存在于另一个目录中的函数调用时,“跳转到声明”似乎失败了。有没有办法解决这个问题或教它跳到哪里?尽管嵌套目录在同一个项目中,但它似乎没有索引/搜索到这些目录。所以我不得不将所有的源代码都保存在同一个目录中,这样我就可以在PyCharm中使用“跳转到声明”了

我正在通过此解决方案从其他文件夹导入文件:

但当我尝试通过file.function()的键盘快捷键“跳转到声明”时,它失败了,因为它不在当前文件的同一目录中

编辑:

所以我创建了@Code学徒建议的结构

然后我添加了@Lukasz建议的_uinit__uuuuuuuuy.py,它成功了:

现在回到我的另一个项目,init.py似乎不起作用。让我修补一下,看看有什么不同

Edit2:

有趣的是,如果将相同的文件bar.py添加到原始项目的子文件夹中,并包含_init__.py文件,则无法跳转到那里的声明。所以这个项目或者PyCharm对我的项目的解释肯定有问题。这是一个大项目,也许有什么东西把它扔了

Edit3:


最后一个问题是我犯了一个愚蠢的错误。谢谢大家

让我们调用您的项目目录
project\u ROOT
。您可以在此文件夹中创建任意目录结构。例如,假设您在
foo
文件夹中创建
bar.py
,在
PROJECT\u ROOT
中创建
main.py

PROJECT_ROOT
|_ foo
   |_ bar.py
|_ main.py
main.py
中使用标准导入:

import foo.bar

foo.bar.do_something()

现在将光标移动到
main.py
中的
do\u something()
用法,然后按Ctrl+B。这将跳转到
foo/bar.py

中的定义。您可以添加一些代码和文件结构吗?
您需要文件夹中的空
\uuuuu init\uuuuuuuupy.py
文件才能使其成为python包,因此导入将适用于模块
您还可以导入:

from app.folder1 import name [as sub_name]

你能给出一个完整的代码示例吗?我经常使用Ctrl+B跳转到python源文件中的声明,无论声明相对于当前源文件位于哪个目录。欢迎使用!;]这对我的示例有效,让我看看是否可以将其成功应用于我的其他项目。设置此项目,请参阅上面的编辑。现在已经在示例项目中运行了。
from app.folder1 import name [as sub_name]