我不知道所有可能的方法。但我可以提出一些方法。
注意!我不知道你的热键和操作系统(我的热键可能不起作用)。
这是一个项目示例:
/lagacy_pack
__init__.py
first.py
second.py
app.py
app.py(取决于legacy_pack):
from legacy_pack.first import Test
from legacy_pack.second import get_name, global_name
# some logic...
name = get_name('test')
if name != global_name:
inst = Test()
/legacy_pack/first.py:
class Test(object):
# just for demonstration
pass
/legacy_pack/second.py:
def get_name(name): # type: (str) -> str
return '.'.join(['name', ':', name])
# just for demonstration
global_name = get_name('example')
1) 如果包很小,这种方法很好。查找到legacy_pack 的所有链接的最简单方法是通过导入使用Find in Path...(shift + cmd + f)。如何使用鼠标:
- 右键项目文件夹 -> 在路径中查找...
- 找到
from legacy_pack和import legacy_pack
您将看到包含您的包的所有文件。示例:
2) 如果您的包裹非常大,我建议您逐步进行。
在某些情况下,我们需要重命名某些东西(类、方法等)。你可以使用 PyCharm 安全地完成它。让我们将class Test 重命名为class Docker。将回车设置为Test,shift + F6(使用鼠标:右键单击Test -> 重构-> 重命名-> 输入Docker -> 单击重构。检查app.py 中的导入。from legacy_pack.first import Test 已更改给from legacy_pack.first import Docker
在某些情况下,我们需要删除一些东西。所以,我们需要找出我们在哪里使用我们想要删除的东西。点击“某事”(方法、变量、类等),alt + F8(使用鼠标:右键单击 -> Find usages。在底部面板中,您将看到模块对“某事”的所有用法。
我也可以推荐使用:
右键单击(方法、变量等)-> 重构 -> Change Signature、Move、Extract。
右键单击(在文件夹/目录上)-> Replace in Path...
(alt + ctrl + o) 优化导入
3) 如果你想按模块/包查看依赖树,我可以推荐pylint。使用方法:
# pylint path_to_module_or_package --reports=y
pylint ./app.py --reports=y
你会看到这样的:
希望这会有所帮助。