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

如何从python中的更高级别目录导入?


例如,我有:


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

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

我想导入的变量A在_common.py以routes.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'


白板的微信
浏览 180回答 2
2回答

至尊宝的传说

旧版本要解决此问题,请替换".."为os.pardir:import os, syssys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir)))from _common import A新版本上面的代码没有解决问题中的问题,因为真正的问题在于项目结构而不是特定行。问题是循环导入。提供完整的回溯后,问题变得清晰。这是重现问题的简单方法 - 考虑 3 个文件...主要.py:import a一个.py:import bA = 'A'b.py:from a import A...错误是:ImportError: cannot import name 'A'或b.py:import aBB = a.A...错误是:AttributeError: module 'a' has no attribute 'A'问题的解决方法已经讨论过很多次了——在SO上搜索

慕盖茨4494581

更改文件目录:import os, sys   sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__),"../../project")))from _common import A
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python