导入包不工作python 3

时间:2017-08-14 15:11:07

标签: python python-3.x import

我在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每次给我和错误而不编译脚本

1 个答案:

答案 0 :(得分:0)

正如@John Gordon所说:

如果Class1在file1.py中,那么您可以使用

导入它
from packages.file1 import Class1

您还可以使用

将Class1导入包/ init .py
from file1 import Class1

然后直接从包

导入
from packages import Class1