For others, the 404 was because the prod server's IP/domain-name was not
added in ALLOWED_HOSTS setting in Django.
Adding the following in production.py helped:
ALLOWED_HOSTS.extend(['prod_ip_here',
])
On Sat, Jul 1, 2017 at 5:30 PM, Anupam Jain <[email protected]> wrote:
> Got past that error. My bad. I had an unneccessary *wsgi.py* in the
> following command:
>
> mod_wsgi-express start-server *wsgi.py* --application-type module
> mysite.wsgi --log-to-terminal
>
> Removed it and the following doesnt give the same error:
> mod_wsgi-express start-server --application-type module mysite.wsgi
> --log-to-terminal
>
> I do get a 404 still on localhost:8000 but that may be due to another
> reason, so will perhaps start a separate thread if need help on that.
>
> Thanks!
>
>
> On Sat, Jul 1, 2017 at 4:17 PM, Anupam Jain <[email protected]> wrote:
>
>> Here's the full traceback:
>>
>> [Sat Jul 01 08:48:59.384492 2017] [wsgi:error] [pid 15499:tid
>> 139843043293056] mod_wsgi (pid=15499): Target WSGI script
>> '/tmp/mod_wsgi-localhost:8000:1001/handler.wsgi' cannot be loaded as
>> Python module.[Sat Jul 01 08:48:59.384622 2017] [wsgi:error] [pid
>> 15499:tid 139843043293056] mod_wsgi (pid=15499): Exception occurred
>> processing WSGI script '/tmp/mod_wsgi-localhost:8000:1001/handler.wsgi'.[Sat
>> Jul 01 08:48:59.384677 2017] [wsgi:error] [pid 15499:tid 139843043293056]
>> Traceback (most recent call last):[Sat Jul 01 08:48:59.384855 2017]
>> [wsgi:error] [pid 15499:tid 139843043293056] File
>> "/tmp/mod_wsgi-localhost:8000:1001/handler.wsgi", line 94, in
>> <module>[Sat Jul 01 08:48:59.384888 2017] [wsgi:error] [pid 15499:tid
>> 139843043293056] recorder_directory=recorder_directory)[Sat Jul 01
>> 08:48:59.385446 2017] [wsgi:error] [pid 15499:tid 139843043293056] File
>> "/home/anupam/ENV/lib/python3.4/site-packages/mod_wsgi/server/__init__.py",
>> line 1374, in __init__[Sat Jul 01 08:48:59.385483 2017] [wsgi:error] [pid
>> 15499:tid 139843043293056] __import__(entry_point)
>> [Sat Jul 01 08:48:59.385523 2017] [wsgi:error] [pid 15499:tid
>> 139843043293056] ImportError: No module named 'wsgi'
>>
>> *import mysite.wsgi* does not give any errors (when run from the shell
>> invoked from the same dir)
>>
>> In production.py:
>> BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
>>
>> thanks,
>> Anupam
>>
>>
>>
>> On Sat, Jul 1, 2017 at 3:50 PM, Graham Dumpleton <
>> [email protected]> wrote:
>>
>>> I would need to see the full traceback along with the error message.
>>>
>>> Also, if in the same directory you run the 'python' interpreter and go:
>>>
>>> import mysite.wsgi
>>>
>>> what happens?
>>>
>>> And, what do you have BASE_DIR set to in production.py?
>>>
>>> Graham
>>>
>>> On 1 Jul 2017, at 7:03 PM, Anupam Jain <[email protected]> wrote:
>>>
>>> (using mysite instead of projectname on this thread now, to be
>>> consistent with the docs)
>>>
>>> I think I have read all the relevant parts of the doc
>>> <http://blog.dscpl.com.au/2015/04/using-modwsgi-express-with-django.html>
>>> now
>>> and followed it accurately but still getting the following error:
>>>
>>> ImportError: No module named 'wsgi'
>>>
>>>
>>> Directory Structure:
>>>
>>> mysite
>>> - myapp
>>> - views.py
>>> - other files
>>> - mysite
>>>
>>> - wsgi.py
>>> - __init__.py
>>> settings
>>> - __init__.py
>>> - base.py
>>> - production.py
>>> - development.py
>>>
>>>
>>> Running the following command from: home/username/mysite/
>>>
>>> mod_wsgi-express start-server wsgi.py --application-type module
>>> mysite.wsgi --log-to-terminal
>>>
>>> wsgi.py:
>>>
>>> import os
>>> # import sys
>>> from django.core.wsgi import get_wsgi_application
>>>
>>> # sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__),
>>> "../../")))
>>> # sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__),
>>> "../")))
>>> os.environ.setdefault("DJANGO_SETTINGS_MODULE",
>>> "mysite.settings.production")
>>>
>>> application = get_wsgi_application()
>>>
>>> On Saturday, July 1, 2017 at 1:24:33 PM UTC+5:30, Graham Dumpleton wrote:
>>>>
>>>>
>>>> On 1 Jul 2017, at 5:52 PM, Anupam Jain <[email protected]> wrote:
>>>>
>>>> Answers inline, thanks
>>>>
>>>> On Saturday, July 1, 2017 at 1:02:07 PM UTC+5:30, Graham Dumpleton
>>>> wrote:
>>>>>
>>>>>
>>>>> On 1 Jul 2017, at 4:17 PM, Anupam Jain <[email protected]> wrote:
>>>>>
>>>>> First of all - thanks for mod_wsgi express!
>>>>>
>>>>> This
>>>>> <http://blog.dscpl.com.au/2015/04/introducing-modwsgi-express.html> post
>>>>> says "As to the configuration of Apache, there actually wasn't any."
>>>>>
>>>>> *Is it ok to assume that I dont need to do any configuration on Apache
>>>>> at all (as in nothing in conf-enabled/available and
>>>>> sites-enabled/available)?* (That sounds to be too good to be true so
>>>>> thought to check)
>>>>>
>>>>>
>>>>> Do not touch any system Apache configuration files under /etc/apache2,
>>>>> /etc/httpd or whatever directory it is that your operating systems puts
>>>>> the
>>>>> Apache configuration. When you use mod_wsgi-express it completely ignores
>>>>> them, does not modify them, nor use them in any way.
>>>>>
>>>>
>>>> *Thats great to know *
>>>>
>>>>>
>>>>>
>>>>> I have setup everything for mod_wsgi express and getting the error
>>>>> "ImportError:
>>>>> No module named '(projectname)'"
>>>>>
>>>>>
>>>>> What command did you run and what arguments to mod_wsgi-express?
>>>>>
>>>>
>>>> *I used: mod_wsgi-express start-server wsgi.py *
>>>>
>>>>>
>>>>> If you get an error with that exact message, then it indicates you
>>>>> copied some template for something from somewhere where you were expected
>>>>> to replace '(projectname)' with a different value for your project. Did
>>>>> you
>>>>> do that? Or is this not actually the error message you go.
>>>>>
>>>>
>>>> *Thats not the exact message. I meant that its searching for the high
>>>> level directory with the Django project name (directory structure below)*
>>>>
>>>>>
>>>>> When you run mod_wsgi-express the directory you run mod_wsgi-express
>>>>> in should be added to the Python module search path, so as long as any
>>>>> modules can be imported from that location you should be good. If that
>>>>> shouldn't be the base directory for imports of your projects, you can use
>>>>> --working-directory option to override it, or use the --python-path option
>>>>> to specify additional directories to search for modules.
>>>>>
>>>>> So what is the directory layout for your project, which directory are
>>>>> you running mod_wsgi-express from and with what arguments.
>>>>>
>>>>
>>>> directory is something like this
>>>>
>>>> projectname
>>>> - appname
>>>> - views.py
>>>> - other files
>>>> - projectname
>>>> - wsgi.py
>>>>
>>>> running mod_wsgi-express from /home/username/projectname/projectname
>>>>
>>>>
>>>> Wrong directory to run it from, plus you need extra arguments.
>>>>
>>>> Read those other blogs posts I have linked to about using it with
>>>> Django.
>>>>
>>>> Once you have tried what is talked about in those, if still have issues
>>>> let me know.
>>>>
>>>> Graham
>>>>
>>>>
>>>>> This is not the one caused by circular imports but something to do
>>>>> with setting the path somewhere I think (as I learnt from some SO posts)
>>>>> but not entirely clear about it
>>>>>
>>>>> I did setup a django.conf in Apache's conf-enabled, so I am suspecting
>>>>> that may be conflicting with something.
>>>>>
>>>>>
>>>>> It shouldn't as it will be ignored.
>>>>>
>>>>> If you are using Django, you should perhaps look at:
>>>>>
>>>>> http://blog.dscpl.com.au/2015/04/using-modwsgi-express-wit
>>>>> h-django.html
>>>>> http://blog.dscpl.com.au/2015/04/integrating-modwsgi-expre
>>>>> ss-as-django.html
>>>>>
>>>>> Also worthwhile reading:
>>>>>
>>>>> http://blog.dscpl.com.au/2015/05/using-modwsgi-express-as-
>>>>> development.html
>>>>>
>>>>> Note that if you have inherited an old Django code base which hasn't
>>>>> been updated correctly so the settings module includes settings defined in
>>>>> newer Django versions, and you have restructured your application code so
>>>>> the settings module is now at a different directory level, and you are
>>>>> using the method of integrating mod_wsgi-express into Django itself, you
>>>>> may also have issues with the settings module not being found when being
>>>>> imported.
>>>>>
>>>>> So also indicate what version of Django your project code was
>>>>> originally created using.
>>>>>
>>>>
>>>> The project was created on Django 1.10.2 and I am now moving it from
>>>> dev to prod (GCP, Debian). Installed the same Django version on prod as
>>>> well. I'll read the above Django posts as well but yes, I did create a
>>>> settings directory under projectname/projectname which includes different
>>>> versions of settings for dev and prod. I have set the environment variable
>>>> for settings in the virtualenv's activate script.
>>>> Also, os.environ.setdefault() is changed accordingly in wsgi.py
>>>>
>>>>>
>>>>> Graham
>>>>>
>>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "modwsgi" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> To post to this group, send email to [email protected].
>>>> Visit this group at https://groups.google.com/group/modwsgi.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>>
>>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "modwsgi" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at https://groups.google.com/group/modwsgi.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>>
>>> --
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "modwsgi" group.
>>> To unsubscribe from this topic, visit https://groups.google.com/d/to
>>> pic/modwsgi/_nUEp1WiRH4/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to
>>> [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at https://groups.google.com/group/modwsgi.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>>
>> --
>> "What is meditation?" (http://www.heartfulness.org/)
>>
>
>
>
> --
> "What is meditation?" (http://www.heartfulness.org/)
>
--
"What is meditation?" (http://www.heartfulness.org/)
--
You received this message because you are subscribed to the Google Groups
"modwsgi" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/modwsgi.
For more options, visit https://groups.google.com/d/optout.