首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当文件位于另一个文件夹/目录时跳转到声明

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

Stack Overflow用户
提问于 2018-02-20 23:28:37
回答 2查看 281关注 0票数 1

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

我正在通过以下解决方案从其他文件夹导入文件:Importing files from different folder

代码语言:javascript
复制
# 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:

最后一个问题是我犯了一个愚蠢的错误。谢谢你们!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-20 23:53:37

你能添加一些代码和文件结构吗?

您需要文件夹中的空__init__.py文件使其成为python包,因此导入将适用于模块。

您还可以导入:

代码语言:javascript
复制
from app.folder1 import name [as sub_name]
票数 2
EN

Stack Overflow用户

发布于 2018-02-20 23:41:17

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

代码语言:javascript
复制
PROJECT_ROOT
|_ foo
   |_ bar.py
|_ main.py

在main.py中,使用标准导入:

代码语言:javascript
复制
import foo.bar

foo.bar.do_something()

现在将光标移动到do_something()在main.py中的用法,然后按Ctrl+B,这将跳到foo/bar.py中的定义。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48895867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档