我想出了我想在tensorflow中使用2个独立项目的情况。问题是我使用(负载很重)虚拟环境,我想继续使用它。在这些项目中,有两个文件夹(不太令人惊讶)utils
。所以,我想从第二个文件夹导入时会发生冲突。
我能想到的可能的解决方案:
from utils import label_map_util
我可以使用from project2.utils import label_map_util
。这似乎有效,但我必须搜索每个文件的冲突导入。就像在label_map_util.py
内部类似的导入崩溃一样(项目中有各种文件夹)。有没有更好的解决方案?我错过了一些明显的东西吗?
另外(我是python的新手)如果这个冲突是由python自动处理的吗?我的意思是当在文件夹中的模块内并尝试导入存在于同一文件夹或子文件夹中的另一个模块时,这不应该优先于其他并行文件夹中的模块(可能在其他项目中等)?
编辑:
为了更清楚,我有2个项目说projectA
和projectB
意味着2个包含各种子文件夹的文件夹,它们都包含一个名为utils
的文件夹。在安装projectA
之前,projectB
运行正常。
当我安装projectB
并尝试在其中运行模块时,它包含从utils
文件夹导入的内容。像
from utils import label_map_util
from utils import visualization_utils as vis_util
等。我正在使用pyCharm,我的IDE没有识别导入是有效的。我试图以交互模式调试它,我的结论是:
label_map_util.py
文件夹中的文件夹utils
中有projectB
个模块。由于某种原因导入尝试在projectA
中找到此模块。因此,当没有具有该名称的模块时,它会抱怨错误:
ImportError:无法导入名称' label_map_util'
在这个意义上import utils
工作正常,但导入了错误的模块(来自projectA
)。