从其他文件夹导入模块:如何在 Spyder 或 PyCharm 中显示函数参数?

Importing modules from other folders: how to display function arguments in Spyder or PyCharm?

有很多关于如何从其他文件夹导入模块的答案。

答案似乎总是这样:

import sys
sys.path.insert(0,"c://UserName//MyFolder//MyBeautifulCode")
import myscript as ms

之后你可以 运行 ms.my_fun(x,y,z) where my_fun() is defined in c://UserName//MyFolder//MyBeautifulCode//myscript.py

代码运行s;但是,不起作用的是,通过这种方式,我没有得到显示 my_fun(); 参数的常用工具提示。相反,如果我将 myscript.py 复制到与我当前 运行ning 脚本完全相同的文件夹中,那么,是的,我确实得到了工具提示。 我的意思是我没有看到这样的东西:

我已经尝试过 PyCharm 和 Spyder,在这方面,两者的行为是相同的。

我想这是因为 c://UserName//MyFolder//MyBeautifulCode//myscript.py 仅在脚本为 运行 时才添加到路径中,因此,在 运行 之前, IDE 没有找到 my_fun()

这是正确的吗? 如果是这样,手动添加 c://UserName//MyFolder//MyBeautifulCode//myscript.py 到路径是唯一的解决方案吗?

顺便说一句,我说的是我在 运行ning 的 3 个独立程序中重用的几个函数。没有什么值得在 github 或 pip 上作为一个包或类似的东西发布。

如果您在代码中的 Python 路径中插入一个路径,它只会在运行时被解释。要让您的 IDE 了解您的图书馆,您必须将其添加到 Python 路径,例如就像这个问题中描述的那样:.

对于 PyCharm,您需要设置项目的 venv 设置以包含该路径。一开始我花了很多时间才找到它 - 我用 google 来搜索这个!但显然 PyCharm 将选项隐藏得更深......好吧,你自己看看。

转到设置,项目:[此处为您的项目名称],Python Interpreter

看到右边的齿轮了吗?单击它,“显示全部”。这将显示,列出 PyCharm 可以用于您的项目的所有 venvs:

选择 venv 后,单击底部的最后一个图标。该图标看起来有点像文件夹结构。

现在我们在PyCharm中看到了被选择的解释器识别的所有路径。我们可以点击+来添加一个新的路径。手动添加的路径最后会有"(added by user)`,如图所示。