从Python中导入与可执行文件同名的模块

时间:2010-08-02 15:40:14

标签: python import

我有一个可执行文件,名称为resource.py。它位于名为resource的文件夹中。重命名文件或文件夹是令人反感的 - 它是旧产品和习惯使用此类命名的用户。在旧版本它是在另一个项目下,因此对它的导入听起来像import main_product.resource.<..>

现在我需要使用import resource.<..>__import__('resource.<..>', ...)等导入。然后我尝试了,我得到了一个预期的错误,因为Python首先尝试从文件resource.py导入。

建议解决方案:

  1. sys.path删除当前文件夹的路径:
    • 我们在文件的开头需要一大堆代码;
    • 此文件夹中没有相关导入功能;
  2. 将文件夹路径放在末尾sys.path列表中:
    • 文件开头的大块丑陋代码;
    • 我不确定此功能是否会一直完美。
  3. 对此有任何有用的想法吗?

    P.S。 Python v2.6,FreeBSD 7.3

1 个答案:

答案 0 :(得分:1)

使用imp.find_module()imp.load_module()

find_module可让您指定自己的搜索路径