我在最新项目中导入某些模块时遇到一些问题。我对Pycharm和Python真的很陌生,我真的可以使用帮助/见解。
问题是我有一个要使用的实用程序文件夹,但我似乎无法正确导入模块。这是我的目录大致的样子:
myproject
utils
utilities
myclass.py
__init__.py
anothermodule
__init__.py
src
helper_func.py
__init__.py
venv
...
main.py
...
我希望能够通过以下方式使用我的类和函数:
object = utilities.myclass.myclass( . . . )
thing = utilities.anothermodule.src.helper_func.helper_func ( . . .)
我以为要走的路就是:
from utils import utilities
但是尝试如前所述创建"对象"会给我这个错误(myclass.py 包含一个名为"myclass"的类):
AttributeError: module 'utils.utilities' has no attribute 'myclass'
我已经在 Pycharm 中标记了实用程序、实用程序、另一个模块、src 作为源根。我做错了什么?我还已经将文件夹"utils"的路径添加到系统路径中。
在您的utilities/__init__.py
文件中添加以下内容。
from . import myclass
from . import anothermodule
anothermodule
应该导入src
,src
应该导入helper_func
等等。
导入实用程序时,Python 会以utilities
的名义导入__init__
文件,这是因为文件夹是作为包导入的。
另一种选择是执行以下操作,但您必须修改语法。
from utils.utilities import myclass
myclass.myclass()
# or
import utils.utilities.my_class
utils.utilities.myclass.myclass()
您可以在 Python 包文档中找到有关此内容的更多信息