flask run Error: While importing 'project', an ImportError was raised

Viewed 10055

I have project directory named Project, and project directory includes python files and html files et al., and want to deploy in the AWS ec2 ubuntu sever.when I run in the local is ok.

when run "flask run" under the Project directory, there is error in the ubuntu terminal.

flask run
 * Serving Flask app 'project' (lazy loading)
 * Environment: development
 * Debug mode: on
Usage: flask run [OPTIONS]
Try 'flask run --help' for help.

Error: While importing 'project', an ImportError was raised

I have set a .flaskenv file as following:

FLASK_APP=project
FLASK_ENV=development 
4 Answers

In my case, there was an error in importing a specific library on FLASK_APP file. Running the command python app.py as jluu suggested will help you to know exactly when the ImportError happens.

Did you installed your dependencies on your remote server? If yes, try installing your app as a module.

Given a the following directory structure:

/yourapplication
/yourApplicationMainFolder
    __init__.py
    /static
        style.css
    /templates
        layout.html
        index.html
        login.html
        ...

Create a setup.py file on /yourapplication/setup.py with:

from setuptools import setup

setup(
    name='yourApplicationMainFolder',
    packages=['yourApplicationMainFolder'],
    include_package_data=True,
    install_requires=[
        'flask',
],)

Install with pip:

pip install -e .

If that did not work, comment out all your imports in the main script and inspect one by one to see which one is the problem.

To future readers: something that might not be obvious is you can get more details on the import error by doing the following:

  • Remove all import lines from your __init__.py file
  • Run flask and navigate to the page it is hosted on
  • While flask is running re-add the import lines to your __init__.py file and let flask update at run time
  • Refresh the page in your browser.

You should now get more detailed information in the browser as to which line is causing the import error along with a traceback.

I have solved it, reinstall all libraries again.

Related