我在工作区中有两个项目: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路径时,不会发生此错误
如何解决这个问题,我可以添加多个项目路径。在
好吧,Python总是将第一个出现的“com”(在PROJECTA中)作为模块“com”,如果在其中找不到任何东西,它甚至不会寻找其他出现的“com”。Python不“合并”模块——如果你仔细考虑一下,它是没有意义的,因为模块可以任意通用和复杂。在
溶液A(正常)
在
PYTHONPATH
中包含项目上方的目录,并使用前缀对模块进行寻址,例如:顺便说一句,我们默认您有
__init__.py
个文件,它们应该在哪里(即在所有应该被视为模块的目录中)。在解决方案B(奇怪)
在PYTHONPATH中,像前面的例子一样在项目上方包含目录,但是创建一个第三个目录结构,如下所示:
^{pr2}$编辑
MODULE_MERGE/com/example/sample/__init__.py
文件以包含以下内容:现在高兴地在你的
MODULE_MERGE
中加入PYTHONPATH
问题是这样做是否合理。我不这么认为。Python项目应该是自包含的,并且通常没有深度嵌套的名称空间。
相关问题 更多 >
编程相关推荐