Python:如何从一个更高的目录导入变量?

2024-05-26 20:45:28 发布

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

如何在python中从更高级别的目录导入?你知道吗

例如,我有:

/var/www/PROJECT/subproject/_common.py 
/var/www/PROJECT/subproject/stuff/routes.py

我想把变量A导入_common.pyroutes.py

# routes.py

import os, sys   
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
from _common import A

但我得到了一个错误:

ImportError:cannot import name 'A'

Tags: pathpyimport目录projectosvarwww
2条回答

更改文件目录:

import os, sys   
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__),"../../project")))
from _common import A

旧版本

要解决此问题,请将".."替换为os.pardir

import os, sys
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir)))
from _common import A

新版本

上面的代码并不能解决问题中的问题,因为真正的问题在于项目结构而不是特定的行。问题是循环导入。在提供了完整的回溯之后,问题变得清晰起来。下面是重现问题的简单方法-考虑3个文件。。。你知道吗

你知道吗主.py地址:

import a

平均值:

import b
A = 'A'

副驾驶:

from a import A

。。。错误是:

ImportError: cannot import name 'A'

或者

副驾驶:

import a
BB = a.A

。。。错误是:

AttributeError: module 'a' has no attribute 'A'

这个问题的解决办法已经讨论过很多次了

相关问题 更多 >

    热门问题