复制目录的Python导入失败

时间:2012-07-27 20:26:38

标签: python import python-import

我有一个像Python项目的目录结构如下:

my_project
|_ 
   ... 
   dirA
      |_ 
        __init__.py
        scriptA.py
   dirB
      |_
        __init__.py
        scriptB.py
   ...

__init__.py的{​​{1}}内dirA __init__.py为空,我有:

dirB

import os import glob __all__ = [os.path.basename(f)[:-3] for f in glob.glob(os.path.dirname(os.path.abspath(__file__)) + "/*.py")] 内,我这样做:

scriptB.py

随后使用导入的代码工作正常。

然后,我将整个项目(使用不同的项目目录名:from dirA import * )复制并粘贴到与旧项目相同的目录中,然后我开始在此更改my_project_new的代码重复的目录。 (注意scriptA.py的目录结构与上面完全相同)。

进行更改后,我尝试运行my_project_new scriptB.py,我发现它一直从原始my_project_new目录导入dirA ,而不是当前my_project目录中的dirA。这是为什么?

此外,我将原始my_project_new文件夹移至其他位置,并尝试再次运行my_project scriptB.py。然后它无法完全识别my_project_new。现在发生了什么?

1 个答案:

答案 0 :(得分:2)

我会评论,但我没有足够的声誉。希望我的猜测是正确的。

是否有__init__.pyc个文件?也许当它编译字节码时,它存储了导入的绝对路径。尝试删除.pyc文件并导入。