ImportError和项目结构

时间:2014-10-23 12:41:39

标签: python python-import

我很难理解python如何使用包和模块,并且在这里真的需要一些帮助。

起初我在pycharm中有一个看起来像这样的项目:

PROJECTNAME 
 - package1
      - __init__.py
      - MyModule.py
      - MyModule2.py
 - package2
      - __init__.py
      - MyModule3.py
 - test
      - test.py
 - RunModule.py
 - README.md
 - setup.py

从模块1,2和3导入RunModule。我可以像这样运行它而没有任何问题:

python RunModule.py

然后我将结构更改为:

PROJECTNAME 
 -projectname
      - package1
          - __init__.py
          - MyModule.py
          - MyModule2.py
       - package2
          - __init__.py
          - MyModule3.py
       - test
          - test.py
       - RunModule.py
 - README.md
 - setup.py

当我尝试运行RunModule.py时,我得到" ImportError:没有名为projectname.package1.MyModule"所有其他模块也有同样的错误。我知道有两种解决方法:

  • 删除所有文件中所有导入的projectname,以便它只是package1.modulename
  • 再次在目录上移动RunModule.py

如果我做第一个pycharm抱怨我跑我的测试,第二个是非常难看。那么我可以通过其他方式解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我想我找到了最好的方法。当我从终端调用我的脚本时,我使用:

python -m projectname.RunModule