Imports not found when running script outside of Pycharm?

生来就可爱ヽ(ⅴ<●) 提交于 2021-02-09 08:36:35

问题


I have a project structured this way...

main.py imports scripts from subfolders like so:

from controllers.available_balances_controller import available_balances_controller

Subfolders:

  • models
  • views
  • controllers

When running main.py in Pycharm it works find.

When I try to run in terminal I get import errors:

Traceback (most recent call last):
  File "main.py", line 6, in <module>
    from controllers.available_balances_controller import available_balances_controller
ImportError: No module named controllers.available_balances_controller

Am I importing the scripts wrong in main.py?

What is the proper way to do the importing?


回答1:


Try running your script with the -m flag:

$ python -m main

That means that you are running your main.py as a module inside a python package, not as a simple script. PyCharm makes it easy for you by assuming so when you create a project. When you are in the terminal, you need to specify it yourself. You don't need __init__.py files inside your directories in Python3.

Check out:

  • https://docs.python.org/3/reference/import.html
  • Relative imports in Python 3


来源:https://stackoverflow.com/questions/36909785/imports-not-found-when-running-script-outside-of-pycharm

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!