Error running wsgi application modulenotfounderror no module named sorl

Я пытаюсь разместить свое локальное веб-приложение на pythonanywhere. [ Новичок в Django и веб-разработке ] При запуске приложения я столкнулся со следующей ошибкой: Error running WSGI application 2021-04-26 21:46:32,020: ModuleNotFoundError: No module named 'myapp' 2021-04-26 21:46:32,020: File ...

Я пытаюсь разместить свое локальное веб-приложение на pythonanywhere. [ Новичок в Django и веб-разработке ]

При запуске приложения я столкнулся со следующей ошибкой:

Error running WSGI application
2021-04-26 21:46:32,020: ModuleNotFoundError: No module named 'myapp'
2021-04-26 21:46:32,020:   File "/var/www/username_pythonanywhere_com_wsgi.py", line 16, in <module>
2021-04-26 21:46:32,020:     application = get_wsgi_application()
2021-04-26 21:46:32,020: 
2021-04-26 21:46:32,020:   File "/home/username/.virtualenvs/web-virtualenv/lib/python3.8/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application
2021-04-26 21:46:32,020:     django.setup(set_prefix=False)
2021-04-26 21:46:32,020: 
2021-04-26 21:46:32,020:   File "/home/username/.virtualenvs/web-virtualenv/lib/python3.8/site-packages/django/__init__.py", line 19, in setup
2021-04-26 21:46:32,021:     configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
2021-04-26 21:46:32,021: 
2021-04-26 21:46:32,021:   File "/home/username/.virtualenvs/web-virtualenv/lib/python3.8/site-packages/django/conf/__init__.py", line 82, in __getattr__
2021-04-26 21:46:32,021:     self._setup(name)
2021-04-26 21:46:32,021: 
2021-04-26 21:46:32,021:   File "/home/username/.virtualenvs/web-virtualenv/lib/python3.8/site-packages/django/conf/__init__.py", line 69, in _setup
2021-04-26 21:46:32,021:     self._wrapped = Settings(settings_module)
2021-04-26 21:46:32,021: 
2021-04-26 21:46:32,021:   File "/home/username/.virtualenvs/web-virtualenv/lib/python3.8/site-packages/django/conf/__init__.py", line 170, in __init__
2021-04-26 21:46:32,021:     mod = importlib.import_module(self.SETTINGS_MODULE)

Расположение файлов:

Файл settings.py находится по адресу:

/home/username/WebDev/Website/Django/MyApp/myapp/myapp

Я изменил файл ‘/var/www/username_pythonanywhere_com_wsgi.py’ как:

"""
WSGI config for myapp project.

It exposes the WSGI callable as a module-level variable named ``application``.

For more information on this file, see
https://docs.djangoproject.com/en/3.2/howto/deployment/wsgi/
"""

import os
import sys
sys.path.append("/home/username/WebDev/Website/Django/MyApp/myapp")

os.environ('DJANGO_SETTINGS_MODULE', 'myapp.settings')

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

Я посмотрел на аналогичный вопрос о stackoverflow, но до сих пор не могу понять, что не так с моей стороны.

Любые указатели / помощь будут оценены.

2 ответа

Лучший ответ

Ошибка устранена.

Проблема заключалась в том, что среда — это не функция, а параметр процесса, и, следовательно, ее использование, как показано ниже, было причиной ошибки.

os.environ('DJANGO_SETTINGS_MODULE', 'myapp.settings')

Я изменил код на:

os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings'

И ошибка была решена.


0

Ishita
30 Апр 2021 в 21:59

Судя по всему, структура папок в порядке.

Что вам может потребоваться, так это добавить модуль в свой INSTALLED_APPS в настройках.

Или, если вы получаете ошибку импорта или ошибку «модуль не найден» для чего-то, что, по вашему мнению, установлено, значит, вы, вероятно, установили его в версию Python или virtualenv, в которой не выполняется ваш код. Если это часть ваш код не найден, значит, ваш путь Python не настроен так, чтобы он видел модуль, который вы пытаетесь импортировать. См. https://help.pythonanywhere.com/pages/DebuggingImportError/.


0

TryingMahBest
27 Апр 2021 в 12:49

У меня проблема

ModuleNotFoundError: No module named 'sorl'

Я установил его и попробовал еще раз.

(env) PS path> pip install sorl-thumbnail
Requirement already satisfied: sorl-thumbnail in pathenvlibsite-packages (12.8.0) 

Django запускается с активированным env. Модуль был установлен с активированным env. Я также попытался установить модуль без виртуального окружения.

Он также добавлен в Installed_Apps

    ...
    'simple_history',
    'widget_tweaks',
    'sorl.thumbnail',
]

Есть советы? 🙄

Full Traceback:

Exception in thread django-main-thread:
Traceback (most recent call last):
  File "C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.9_3.9.2800.0_x64__qbz5n2kfra8p0libthreading.py", line 973, in _bootstrap_inner
    self.run()
  File "C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.9_3.9.2800.0_x64__qbz5n2kfra8p0libthreading.py", line 910, in run
    self._target(*self._args, **self._kwargs)
  File "c:UsersdDesktopSHenvlibsite-packagesdjangoutilsautoreload.py", line 64, in wrapper      
    fn(*args, **kwargs)
  File "c:UsersdDesktopSHenvlibsite-packagesdjangocoremanagementcommandsrunserver.py", line 110, in inner_run
    autoreload.raise_last_exception()
  File "c:UsersdDesktopSHenvlibsite-packagesdjangoutilsautoreload.py", line 87, in raise_last_exception
    raise _exception[1]
  File "c:UsersdDesktopSHenvlibsite-packagesdjangocoremanagement__init__.py", line 375, in execute
    autoreload.check_errors(django.setup)()
  File "c:UsersdDesktopSHenvlibsite-packagesdjangoutilsautoreload.py", line 64, in wrapper      
    fn(*args, **kwargs)
  File "c:UsersdDesktopSHenvlibsite-packagesdjango__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "c:UsersdDesktopSHenvlibsite-packagesdjangoappsregistry.py", line 91, in populate        
    app_config = AppConfig.create(entry)
  File "c:UsersdDesktopShenvlibsite-packagesdjangoappsconfig.py", line 224, in create
    import_module(entry)
  File "C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.9_3.9.2800.0_x64__qbz5n2kfra8p0libimportlib__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'sorl'

Вернуться на верх

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.

Already on GitHub?
Sign in
to your account

Comments

@akshayk10128

Hi, I am still not able to resolve this with django rest framework and centos 7 and python 3.6 .This is my django.conf

WSGIScriptAlias / /venv/core/core/wsgi.py
WSGIPythonHome /venv
WSGIPythonPath /venv/core/core

<Directory /venv/core/core>
    <Files wsgi.py>
        Require all granted
    </Files>
</Directory>

WSGIDaemonProcess core python-path=/venv/core/core/ python-home=/venv
WSGIProcessGroup core

@akshayk10128

This is my wsgi.py file in django project repo :

import os,sys

exec(open("/venv/bin/activate_this.py").read(), {'__file__': "/venv/bin/activate_this.py"})

sys.path.append('/venv/core/core')

sys.path.append('/venv/lib/python3.6/site-packages')

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ipan_core.settings")

application = get_wsgi_application()

@akshayk10128

Error log files : 
[mpm_prefork:notice] [pid 22418] AH00163: Apache/2.4.6 (CentOS) mod_wsgi/4.6.4 Python/3.6 configured -- resuming normal operations
[Wed May 02 10:31:34.054712 2018] [core:notice] [pid 22418] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
[Wed May 02 10:31:36.514895 2018] [wsgi:error] [pid 22419] [remote 125.63.68.155:27751] mod_wsgi (pid=22419): Failed to exec Python script file ''.
[Wed May 02 10:31:36.514941 2018] [wsgi:error] [pid 22419] [remote 125.63.68.155:27751] mod_wsgi (pid=22419): Exception occurred processing WSGI script '
[Wed May 02 10:31:36.515136 2018] [wsgi:error] [pid 22419] [remote 125.63.68.155:27751] Traceback (most recent call last):
[Wed May 02 10:31:36.515159 2018] [wsgi:error] [pid 22419] [remote 125.63.68.155:27751]   File "", line 37, in <module>
[Wed May 02 10:31:36.515181 2018] [wsgi:error] [pid 22419] [remote 125.63.68.155:27751]     from django.core.wsgi import get_wsgi_application
[Wed May 02 10:31:36.515215 2018] [wsgi:error] [pid 22419] [remote 125.63.68.155:27751] ModuleNotFoundError: No module named 'django'

@GrahamDumpleton

When you activate the Python virtual environment from the command line and run python, what do you get when you enter:

import sys
print(sys.prefix)

Please don’t modify the paths you give me. You appear to have done that in the configuration snippets you gave me as they don’t match what the log is showing for the WSGI script file path. It makes it impossible to validate whether you are using the correct paths.

Also, what do you get for:

import django
print(django.__file__)

@akshayk10128

Python 3.6.4 (default, Dec 19 2017, 14:48:12)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.prefix)
/ipan_env
>>> import django
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'django'
>>> print(django.__file__)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'django' is not defined
>>>

@GrahamDumpleton

Which says that Django hasn’t even been installed in the virtual environment. Once you have it installed, then you should use /ipan_env as the value for WSGIPythonHome and python-home.

@akshayk10128

But when i use sudo from command line , django gets imorted. Is it a permission issue?

@akshayk10128

My Project run fine when i use sudo python3.6 manage.py runserver but gives import error without using sudo.

@GrahamDumpleton

Do not create your virtual environment as root using sudo. Also do not install packages into it as root using sudo. The user that Apache runs your code as will not be able to access stuff if root applies restrictive permissions. Is also a bad idea to install stuff directly under / directory.

Create a directory something like /var/www/project. Change the ownership to you. Put in that directory the virtual environment and your project code with everything owned by you. Directories and files need to be accessible to other users so that the Apache user can access it. Install packages into the virtual environment as you. Set up mod_wsgi to use your project from that location.

Always run python manage.py runserver during development as you, never as root.

@akshayk10128

After giving proper permissions its fixed and working.
Thanks man!

@lenheard

I have to apologies… but I just cant get this right… I am probably reading over the correct answer
I went through many… many.. google articles and this one seems to be the closest to my problem. Please … if you can help me

my apache2 sites-available lenwsgi.conf

lenwsgi.conf.txt

now my wsgi.py path = /home/kallie/ftp/files/AI

wsgi .txt

the apache2 error log

apache2_error_log.txt

my file structure
image

my python ( main environment )
image

python virtual environment (env)
image

django stuff
image

Thank you in advance
Len

@GrahamDumpleton

@ghost

@piterkey

uwsgi —python-version
maybe you mean
uwsgi —version

@lahirusamaraweera

After giving proper permissions its fixed and working.
Thanks man!

What was the permission you give?

  • #1

Выгружаю сайт на heroku, но при его просмотре выходит ошибка — Application error.

Более детально:

Код:

ModuleNotFoundError: No module named 'MySite'
at=error code=H10 desc="App crashed"

Procfile:

Код:

web: gunicorn MySite.wsgi --log-file -

Как мне исправить ошибку? Приложение в Procfile указано верно.

  • #6

Попробуйте указать в Procfile полный путь к wsgi-файлу:

Код:

web: gunicorn папка_проекта.приложение_с_wsgi.wsgi --log-file

или сначала перейти в папку с проектом, а потом запустить gunicorn с wsgi:

Код:

web: sh -c 'cd папка_проекта && gunicorn приложение_с_wsgi.wsgi --log-file'

  • #2

Как мне исправить ошибку? Приложение в Procfile указано верно

Попробуйте заменить MySite.wsgi на название_проекта.wsgi. Название проекта — это имя папки в которой лежит файл wsgi.py.

  • #3

Попробуйте заменить MySite.wsgi на название_проекта.wsgi.

Не вышло.
Однако теперь в ошибке папка указывается с «.wsgi»

ModuleNotFoundError: No module named ‘{название проекта}.wsgi’

  • #4

Не вышло.
Однако теперь в ошибке папка указывается с «.wsgi»

Возможно у вас файлы проекта (manage.py и другие) находятся не в корневой папке и соответственно путь к файлу название_проекта/wsgi.py тоже другой.

  • #5

Возможно у вас файлы проекта (manage.py и другие) находятся не в корневой папке и соответственно путь к файлу название_проекта/wsgi.py тоже другой.

Вот моя структура:
Screenshot_6.png
Возможно, Procfile и requirement должны быть внутри проекта, но тогда возникнут ошибки еще при развертывании сайта.

Последнее редактирование: Янв 28, 2022

  • #7

Попробуйте указать в Procfile полный путь к wsgi-файлу:

Код:

web: gunicorn папка_проекта.приложение_с_wsgi.wsgi --log-file

или сначала перейти в папку с проектом, а потом запустить gunicorn с wsgi:

Код:

web: sh -c 'cd папка_проекта && gunicorn приложение_с_wsgi.wsgi --log-file'

Это сработало, спасибо! Однако, чтобы не было ошибок:

web: sh -c ‘cd папка_проекта && gunicorn приложение_с_wsgi.wsgi —log-file=-‘

В Python может быть несколько причин возникновения ошибки ModuleNotFoundError: No module named ...:

  • Модуль Python не установлен.
  • Есть конфликт в названиях пакета и модуля.
  • Есть конфликт зависимости модулей Python.

Рассмотрим варианты их решения.

Модуль не установлен

В первую очередь нужно проверить, установлен ли модуль. Для использования модуля в программе его нужно установить. Например, если попробовать использовать numpy без установки с помощью pip install будет следующая ошибка:

Traceback (most recent call last):
   File "", line 1, in 
 ModuleNotFoundError: No module named 'numpy'

Для установки нужного модуля используйте следующую команду:

pip install numpy
# или
pip3 install numpy

Или вот эту если используете Anaconda:

conda install numpy

Учтите, что может быть несколько экземпляров Python (или виртуальных сред) в системе. Модуль нужно устанавливать в определенный экземпляр.

Конфликт имен библиотеки и модуля

Еще одна причина ошибки No module named — конфликт в названиях пакета и модуля. Предположим, есть следующая структура проекта Python:

demo-project
 └───utils
         __init__.py
         string_utils.py
         utils.py

Если использовать следующую инструкцию импорта файла utils.py, то Python вернет ошибку ModuleNotFoundError.


>>> import utils.string_utils
Traceback (most recent call last):
File "C:demo-projectutilsutils.py", line 1, in
import utils.string_utils
ModuleNotFoundError: No module named 'utils.string_utils';
'utils' is not a package

В сообщении об ошибке сказано, что «utils is not a package». utils — это имя пакета, но это также и имя модуля. Это приводит к конфликту, когда имя модуля перекрывает имя пакета/библиотеки. Для его разрешения нужно переименовать файл utils.py.

Иногда может существовать конфликт модулей Python, который и приводит к ошибке No module named.

Следующее сообщение явно указывает, что _numpy_compat.py в библиотеке scipy пытается импортировать модуль numpy.testing.nosetester.

Traceback (most recent call last):
   File "C:demo-projectvenv
Libsite-packages
         scipy_lib_numpy_compat.py", line 10, in
     from numpy.testing.nosetester import import_nose
 ModuleNotFoundError: No module named 'numpy.testing.nosetester'

Ошибка ModuleNotFoundError возникает из-за того, что модуль numpy.testing.nosetester удален из библиотеки в версии 1.18. Для решения этой проблемы нужно обновить numpy и scipy до последних версий.

pip install numpy --upgrade
pip install scipy --upgrade 

Понравилась статья? Поделить с друзьями:
  • Error running unnamed python script path must be set
  • Error running setup program code 2
  • Error running process createprocess failed code 2
  • Error running poetry pycharm
  • Error running pod install flutter