

以下のようなディレクトリ構成で、  
`main.py`から`cls_a.py`を呼び出そうと考えています。

[code]

    pkg_a
    ├── __init__.py
    ├── cls_a.py
    └── main.py
    
[/code]

各ファイルの中身は以下の通りです。

  * __init__.py

[code]

    from .cls_a import ClsA
    
[/code]

  * cls_a.py

[code]

    class ClsA:
        @staticmethod
        def hello():
            return 'Hello Cls A'
    
[/code]

  * main.py

[code]

    from pkg_a import ClsA
    print(ClsA.hello())
    
[/code]

pkg_aディレクトリから`main.py`を実行すると、pkg_aモジュールが見つからないという旨のエラーが出てしまうのですが、正常にモジュールの読み込みを行うにはどうすれば良いですか？

[code]

    > py main.py 
    Traceback (most recent call last):
      File "main.py", line 1, in <module>
        from pkg_a import ClsA
    ModuleNotFoundError: No module named 'pkg_a'
    Error in sys.excepthook:
    Traceback (most recent call last):
      File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
        from apport.fileutils import likely_packaged, get_recent_crashes
      File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
        from apport.report import Report
      File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
        import apport.fileutils
      File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
        from apport.packaging_impl import impl as packaging
      File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 24, in <module>
        import apt
      File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
        import apt_pkg
    ModuleNotFoundError: No module named 'apt_pkg'
    
    Original exception was:
    Traceback (most recent call last):
      File "main.py", line 1, in <module>
        from pkg_a import ClsA
    ModuleNotFoundError: No module named 'pkg_a'
    
[/code]


CC BY-SA 4.0
2019-12-09T17:23:45.533
61276
2019-12-09T17:23:45.533
9616
question
python python3
同じパッケージ内のimport