ModuleNotFoundError: нет модуля с именем 'flask' - Удаленный сервер Ubuntu - PullRequest
0 голосов
/ 30 августа 2018

Я в настоящее время на Ubuntu 16.04, которую я создал через Digitalocean Droplet. Я пытаюсь запустить простое приложение фляги. Я слежу за этим РУКОВОДСТВО Тем не менее, я застрял на этом шаге You can run the Flask app simply by running the following command:, когда я пытаюсь запустить python app.py, я получаю следующее ...

Traceback (most recent call last):
  File "app.py", line 1, in <module>
    from flask import Flask
ModuleNotFoundError: No module named 'flask'
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 23, 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 "app.py", line 1, in <module>
    from flask import Flask
ModuleNotFoundError: No module named 'flask'

Также колба уже установлена.

Requirement already satisfied: flask in /usr/local/lib/python3.5/dist-packages (1.0.2)
Requirement already satisfied: Werkzeug>=0.14 in /usr/local/lib/python3.5/dist-packages (from flask) (0.14.1)
Requirement already satisfied: itsdangerous>=0.24 in /usr/local/lib/python3.5/dist-packages (from flask) (0.24)
Requirement already satisfied: Jinja2>=2.10 in /usr/local/lib/python3.5/dist-packages (from flask) (2.10)
Requirement already satisfied: click>=5.1 in /usr/local/lib/python3.5/dist-packages (from flask) (6.7)
Requirement already satisfied: MarkupSafe>=0.23 in /usr/lib/python3/dist-packages (from Jinja2>=2.10->flask) (0.23)

Пока среда активна, при запуске python app.py

я получаю следующую трассировку стека
Traceback (most recent call last):
  File "app.py", line 10, in <module>
    app.run(debug=True)
  File "/home/.env/lib/python3.5/site-packages/flask/app.py", line 910, in run
    cli.load_dotenv()
  File "/home/.env/lib/python3.5/site-packages/flask/cli.py", line 608, in load_dotenv
    dotenv.load_dotenv(path)
  File "/home/.env/lib/python3.5/site-packages/dotenv/main.py", line 255, in load_dotenv
    return DotEnv(f, verbose=verbose).set_as_environment_variables(override=override)
  File "/home/.env/lib/python3.5/site-packages/dotenv/main.py", line 95, in set_as_environment_variables
    for k, v in self.dict().items():
  File "/home/.env/lib/python3.5/site-packages/dotenv/main.py", line 74, in dict
    values = OrderedDict(self.parse())
  File "/home/.env/lib/python3.5/site-packages/dotenv/main.py", line 79, in parse
    f = self._get_stream()
  File "/home/.env/lib/python3.5/site-packages/dotenv/main.py", line 62, in _get_stream
    return io.open(self.dotenv_path)
IsADirectoryError: [Errno 21] Is a directory: '/home/.env'

1 Ответ

0 голосов
/ 30 августа 2018

@ Абхилаш, похоже, проблема не в коде, а в настройке.

По умолчанию Python будет искать конфигурации среды фляги в домашнем каталоге, который обычно хранится в файле .env. В вашем случае это виртуальная среда. Отсюда и ошибка.

Выполните следующие действия:

Перейдите в каталог документов вашего пользователя, например,

cd /home/rahul/Documents/

Создайте отдельную папку для вашего приложения фляги:

mkdir flask_test_app

Перейдите в указанный выше каталог:

cd flask_test_app

Создать виртуальную среду здесь:

virtualenv .env

Активировать эту виртуальную среду:

source .env/bin/activate

Это должно показать что-то вроде ниже:

(.env) rahul@ramco:~/Documents/flask_test_app

Установить колбу:

pip install Flask

Поместите файл приложения фляги, созданный в текущей папке, т.е. файл app.py.

Запустите приложение:

python app.py

Это запустит приложение колбы через порт 5000 колбы по умолчанию и отобразит что-то вроде ниже в терминале:

 * Tip: There are .env files present. Do "pip install python-dotenv" to use them.
 * Serving Flask app "app" (lazy loading)
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Tip: There are .env files present. Do "pip install python-dotenv" to use them.
 * Debugger is active!
 * Debugger PIN: 303-406-109

ПРИМЕЧАНИЕ. Старайтесь избегать создания виртуальной среды в домашнем каталоге, если вам необходимо использовать другое имя, например .venv или venv. Так что это не будет конфликтовать с конфигурациями по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...