PyCharm - 动态导入重映射

1 投票
2 回答
916 浏览
提问于 2025-04-18 13:18

我正在处理一些Boost-Build文件(实验性的Python构建),并试图在PyCharm中正确设置环境。Boost-Build有一个src文件夹,结构大致如下:

\---src
    +---build
    +---contrib
    +---kernel
    +---options
    +---tools
    |   +---doxygen
    |   +---types
    |   \---xsltproc
    \---util

当我运行b2这个可执行文件时,它会做一些魔法,把src目录设置为一个可以导入的Python模块,叫做b2。这样你就可以像平常一样进行Python导入:

from b2.util import bjam_signature

问题是,在我所有的Python文件中,PyCharm并不识别b2这个包,因为实际上,b2包就是src目录。所以,我在PyCharm中遇到了一堆未解决的引用错误。

有没有什么办法可以让PyCharm把src目录识别为b2包呢?(不想用简单粗暴的方法直接把src目录重命名为b2

2 个回答

0

最简单的方法就是你提到的那样,直接把src文件夹重命名就行。你也可以尝试下面这种做法:

import src as b2

不过,这样做并不能解决from b2 import的问题。我在深入研究后找到的另一个解决方案在这篇帖子里:

基本上,你可以修改sys.modules来指向新的名称。我猜这个方法可能只在脚本运行时有效,但你可以试试看。

0

这可能不是最好的方法,也不是最适合PyCharm的做法,但我最终在我的 Python27\Lib\site-packages 目录下创建了一个叫 b2 的符号链接,这个链接指向了 src 文件夹。现在我不会再遇到找不到导入的错误,也能正常使用函数自动补全了。

撰写回答