Python路径重写

2024-05-23 23:29:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个目录结构:

PYTHONPATHDIR
    App1
        someModule.py
        utils.py  
    utils
        hasClassIWantToImport.py

我想从某个模块导入一些东西utils.hasClassiWantImport. 当我打电话给:

^{pr2}$

它无法解析“hasClassiWantImport”,因为它认为我在谈论实用工具.py在当前目录中。在

我该怎么办?我知道我可以重命名其中一个“utils”,但我不想。。。在


Tags: 模块py目录utils实用工具结构重命名app1
2条回答

没有任何方法可以同时维护对PYTHONPATHDIR/utils和{}的访问,而不需要将它们中的一个引用到另一个。在

如果修改路径使PYTHONPATHDIR位于列表的顶部,则可以导入utils.hasClassIWantToImport,但将失去对{}的访问权限。在

你能做的最好的方法就是把App1放进一个__init__.py文件,然后像@Gryphius建议的那样修改你的路径(即把/path/to/utils放在sys.path的开头)。当您想要访问utils.hasClassIWantToImport时,您可以

from utils.hasClassIWantToImport import ClassIWant

要导入与utils.py相关的文件,则

^{pr2}$

然而,这是一个可怕的黑客攻击,只是为了避免重命名utils.py。我建议您省去长期困扰路径操作的问题,只需重命名该文件。在

不确定我是否正确理解您的目录设置,但您可以尝试:

import sys
sys.path.insert(0,'/path/to/utils')
from hasClassIwantToImport import ClassIWant

相关问题 更多 >