将2个项目与1个虚拟环境相结合

时间:2018-01-10 08:33:38

标签: python virtualenv

我想出了我想在tensorflow中使用2个独立项目的情况。问题是我使用(负载很重)虚拟环境,我想继续使用它。在这些项目中,有两个文件夹(不太令人惊讶)utils。所以,我想从第二个文件夹导入时会发生冲突。

我能想到的可能的解决方案:

  1. 创建一个新的虚拟环境,甚至更好地克隆现有的虚拟环境,就像在here中一样。 Con是需要大约1.7GB并且我的空间不足(但如果这是最好的选择,我可以以某种方式处理它。)
  2. 尝试使用文件夹前缀来调试冲突的案例,而不是: from utils import label_map_util我可以使用from project2.utils import label_map_util。这似乎有效,但我必须搜索每个文件的冲突导入。就像在label_map_util.py内部类似的导入崩溃一样(项目中有各种文件夹)。
  3. 有没有更好的解决方案?我错过了一些明显的东西吗?

    另外(我是python的新手)如果这个冲突是由python自动处理的吗?我的意思是当在文件夹中的模块内并尝试导入存在于同一文件夹或子文件夹中的另一个模块时,这不应该优先于其他并行文件夹中的模块(可能在其他项目中等)?

    编辑:

    为了更清楚,我有2个项目说projectAprojectB意味着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)。

0 个答案:

没有答案