Python 2.7 python路径导入冲突

Python 2.7 python路径导入冲突,python-2.7,python-import,Python 2.7,Python Import,我有一个Python应用程序,它具有以下目录结构: /home/vagrant/app /home/vagrant/app/support /home/vagrant/app/utils (1) /home/vagrant/app/examples/example_a /home/vagrant/app/examples/utils (2) 我已经将/home/vagrant/app添加到我的PYTHONPATH,所有文件夹都有\uuuu init\uuuu.py

我有一个Python应用程序,它具有以下目录结构:

/home/vagrant/app
/home/vagrant/app/support
/home/vagrant/app/utils         (1)
/home/vagrant/app/examples/example_a
/home/vagrant/app/examples/utils        (2)
我已经将/home/vagrant/app添加到我的PYTHONPATH,所有文件夹都有
\uuuu init\uuuu.py
文件

我试图通过调用
/home/vagrant/app$python./example/example\u a/ex\u a.py来运行应用程序

它通过回溯退出:

File "./examples/example_a/ex_a.py", line 14, in <module>           (3)
   from support.sp1.py import *
File "/home/vagrant/app/support/sp1.py", line 11, in <module>       (4)
  from utils.mod_a import *
ImportError: No module named mod_a
文件“/examples/example_a/ex_a.py”,第14行,第(3)行
从support.sp1.py导入*
文件“/home/vagrant/app/support/sp1.py”,第11行,在(4)中
从utils.mod_导入*
ImportError:没有名为mod_a的模块
名为mod_A.py的模块出现在
~/app/utils
中,但不在
~/app/examples/utils

我试图将
~/app/examples/utils
重命名为
~/app/examples/utils ex
。这解决了这个问题,但依赖于“/home/vagrant/app/examples/utils”的其他东西被破坏了

有没有办法让python解释器查找utils(1)而不是utils(2)?文件(3)具有相对路径(前缀为点),文件(4)具有绝对路径(前缀为/)。我的想法是,我的设置有问题,这使得解释器在app/之前查看app/examples文件夹。我的启动路径在app/examples/example\u路径中,但sp1.py不是

当然,没有utils和examples/utils是最简单的,但这不是我的代码,我不愿意重写它。

您需要先启用它


我放弃并接受了不可避免的基于Bash的解决方案:

cp -r ./examples/utils/ ./examples/xutils/
rm -R ./examples/utils/utils
find ./ -type f -exec sed -i 's/examples.utils/examples.xutils/g'  {} \;

我喜欢这个想法,但不幸的是,它不起作用——因为代码依赖于ex_a.py中的相对路径。我需要的是ex_a.py中的相对值和sp1.py中的绝对值。
cp -r ./examples/utils/ ./examples/xutils/
rm -R ./examples/utils/utils
find ./ -type f -exec sed -i 's/examples.utils/examples.xutils/g'  {} \;