向PYTHONPATH添加两个或多个Python项目路径

2024-10-02 18:14:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我在工作区中有两个项目:PROJECTA和PROJECTB

我将两个项目的路径添加到环境变量中

变量名:PYTHONPATH 变量值:C:\path to PA\PROJECTA;C:\path to PB\PROJECTB

我有以下PROJECTA和PROJECTB的目录结构

PROJECTA
    com
       example
            sample
                projAAA
                   srcfiles
                   testcasefiles


PROJECTB
    com
       example
            sample
                projBBB
                   srcfiles
                   testcasefiles

我正在尝试从PROJECTB的testcasefiles目录导入srcfiles目录中的文件

^{pr2}$

Python正在引发异常:

重要错误:没有命名的模块projectBBB.src文件在

当从环境变量中的PYTHONPATH中删除PROJECTA路径时,不会发生此错误

如何解决这个问题,我可以添加多个项目路径。在


Tags: 文件tosamplepath项目路径目录com
1条回答
网友
1楼 · 发布于 2024-10-02 18:14:40

好吧,Python总是将第一个出现的“com”(在PROJECTA中)作为模块“com”,如果在其中找不到任何东西,它甚至不会寻找其他出现的“com”。Python不“合并”模块——如果你仔细考虑一下,它是没有意义的,因为模块可以任意通用和复杂。在

溶液A(正常)

PYTHONPATH中包含项目上方的目录,并使用前缀对模块进行寻址,例如:

from PROJECTA import com as comA
from PROJECTB import com as comB
from comA.example.sample.projectBBB.srcfiles import pythonfile.py

顺便说一句,我们默认您有__init__.py个文件,它们应该在哪里(即在所有应该被视为模块的目录中)。在

解决方案B(奇怪)

在PYTHONPATH中,像前面的例子一样在项目上方包含目录,但是创建一个第三个目录结构,如下所示:

^{pr2}$

编辑MODULE_MERGE/com/example/sample/__init__.py文件以包含以下内容:

from comA.example.sample import projAAA
from comB.example.sample import projBBB

现在高兴地在你的MODULE_MERGE中加入PYTHONPATH

问题是这样做是否合理。我不这么认为。Python项目应该是自包含的,并且通常没有深度嵌套的名称空间。

相关问题 更多 >