我在python 3中创建了一个包,并尝试在我的主文件夹中导入它,这不起作用
我这样的架构
--mainFolder
--__init__.py
--start.py
--packages
--__init__.py
--file1.py
--file2.py
当我用这样的控制台启动我的程序时
python3 start.py
我有这个错误
Traceback (most recent call last):
File "start.py", line 8, in <module>
from packages import Class1
ImportError: cannot import name 'Class1'
我的mainFolder中的第一个 init 文件为空
在我的 init 我的包中尝试
1 from .file1 import Class1
2 from . import Class1
3 from . import file1
在我的start.py中,我尝试以多种方式调用我的模块
1 from packages import Class1
2 from .packages import Class1
3 from . import Class1
修改
在我的packages/file1
我的代码中
import time
import sys
Class Class1(objet):
def run(self):
print('test')
在我的start.py中调用此文件,如此
Class1().run()
我试试这个How to import a module from sub directory
这Cannot import modules in Python3 from sub directory
和Importing module from sub-directory works in Python 2, but not Python 3
我认为我的文件 init 没有加载,因为我添加了这个
sys.path.append('path/to/my/package')
在导入我的包中它的工作但pycharm每次给我和错误而不编译脚本
答案 0 :(得分:0)
正如@John Gordon所说:
如果Class1在file1.py中,那么您可以使用
导入它from packages.file1 import Class1
您还可以使用
将Class1导入包/ init .pyfrom file1 import Class1
然后直接从包
导入from packages import Class1