【问题标题】:PyCharm Code Completion for files outside project directory项目目录外文件的 PyCharm 代码完成
【发布时间】:2021-11-30 05:53:18
【问题描述】:

我的 python 应用程序在运行时动态地在文件系统的其他位置导入其他 python 包。然后它调用这些包中的某些函数并从主应用程序提供数据对象。

问题是对这些外部包进行编码时,主应用程序代码没有代码完成。

因为这些数据对象只在运行时提供,它们的类(在调用包时已经由主应用程序导入),包本身不能以任何方式引用它们(循环导入)。由于包在运行之前不知道对象,因此代码完成也无法建议这些对象的任何方法。

我有什么方法可以为 PyCharms 代码完成提供对主应用程序的引用,以便它可以自动完成我的代码?我的意思是对我的主应用程序类的对象的建议,本机 python 包的自动完成当然可以正常工作。

这些包是通过将它们的路径动态添加到路径变量来导入的,我尝试将它们也添加到解释器路径中,但是这不起作用。

【问题讨论】:

  • 所以你有一个主应用程序并根据配置为不同版本的远程包选择包含哪些路径?您多久在要导入的不同版本之间切换一次?一天多次,还是每周/每月多次?

标签: python pycharm code-completion


【解决方案1】:

因此,如果您的主应用程序有main,而您的远程包的不同版本有foo0foo1,如果您当前正在开发foo1,您可以做的是打开您的main 项目然后将 foo1 作为上下文根添加到 main.

添加上下文根:Settings| Project: ... | Project Structure | + Add Context Root。然后选择foo1

如果你想将你的开发切换到foo0,你需要删除 foo1 作为上下文根并添加 foo0。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-17
    • 2020-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    相关资源
    最近更新 更多