在pycharm中,当我从同一目录导入本地模块时,我想摆脱未解析引用警告:
,而不将本地目录标记为源根目录,并且
,无需取消设置-> Editor-> Inspections-> Python->未解决的引用选项
我认为这是一个公平的要求,因为如果我没有记错的话,python允许从同一目录导入模块。我的理解是本地目录(“。”目录)隐含在PYTHON PATH中。
该代码实际上可以在命令行中运行(无需将目录放置在任何PYTHON PATH中),但也可以在pycharm中使用,这具有讽刺意味。可以,但是pycharm:
显示未解决的引用警告,并且
导入的功能上的CRL B无法正常工作,并显示“找不到要转到的声明”
代码示例:
结构:
import_test1 (directory not mark as sources root)
__init__.py (same behaviour if not present)
main.py
tools1.py
main.py:
from tools1 import add # =====> Unresolved references of tools1
print(add(2,3)) #=====> CRTL B does not work on add()
tools1.py:
def add(a, b):
return a + b
是否有摆脱烦人行为的方法?
如果没有,其背后的原理是什么?
PS:这个问题非常具体,尽管看起来像其他问题,但我认为它不是重复的。
答案 0 :(得分:1)
长话短说-不,你不能。背后的原因是PyCharm无法确定要要导入什么。通过将其标记为源根目录,您可以让PyCharm明确知道该目录在执行期间将位于sys.path中,并且PyCharm可以继续使用该目录中的模块。 我想说这种现象的原因是这样的事实:在Python中,您几乎可以从任何地方导入任何东西,而IDE并不总是确定要使用哪个模块。