Description
Here's a weird error: if a run mediagoblin-paster with your init.d daemon, I've the following error.
2014-03-11 16:05:43,301 INFO [mediagoblin.app] GNU MediaGoblin 0.6.2.dev main server starting
2014-03-11 16:05:43,311 WARNING [mediagoblin.init.config] When setting up config section, could not import 'mediagoblin.media_types.image'
2014-03-11 16:05:43,343 INFO [mediagoblin.app] Setting up plugins.
2014-03-11 16:05:43,343 INFO [mediagoblin.init.plugins] Importing plugin module: mediagoblin.plugins.geolocation
2014-03-11 16:05:43,343 INFO [mediagoblin.init.plugins] Importing plugin module: mediagoblin.plugins.basic_auth
2014-03-11 16:05:43,343 INFO [mediagoblin.init.plugins] Importing plugin module: mediagoblin.media_types.image
Traceback (most recent call last):
File "/var/www/mediagoblin/bin/paster", line 9, in <module>
load_entry_point('PasteScript==1.7.5', 'console_scripts', 'paster')()
File "/var/www/mediagoblin/local/lib/python2.7/site-packages/PasteScript-1.7.5-py2.7.egg/paste/script/command.py", line 104, in run
invoke(command, command_name, options, args[1:])
File "/var/www/mediagoblin/local/lib/python2.7/site-packages/PasteScript-1.7.5-py2.7.egg/paste/script/command.py", line 143, in invoke
exit_code = runner.run(args)
File "/var/www/mediagoblin/local/lib/python2.7/site-packages/PasteScript-1.7.5-py2.7.egg/paste/script/command.py", line 238, in run
result = self.command()
File "/var/www/mediagoblin/local/lib/python2.7/site-packages/PasteScript-1.7.5-py2.7.egg/paste/script/serve.py", line 284, in command
relative_to=base, global_conf=vars)
File "/var/www/mediagoblin/local/lib/python2.7/site-packages/PasteScript-1.7.5-py2.7.egg/paste/script/serve.py", line 321, in loadapp
**kw)
File "/var/www/mediagoblin/local/lib/python2.7/site-packages/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py", line 247, in loadapp
return loadobj(APP, uri, name=name, **kw)
File "/var/www/mediagoblin/local/lib/python2.7/site-packages/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py", line 272, in loadobj
return context.create()
File "/var/www/mediagoblin/local/lib/python2.7/site-packages/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py", line 710, in create
return self.object_type.invoke(self)
File "/var/www/mediagoblin/local/lib/python2.7/site-packages/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py", line 203, in invoke
app = context.app_context.create()
File "/var/www/mediagoblin/local/lib/python2.7/site-packages/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py", line 710, in create
return self.object_type.invoke(self)
File "/var/www/mediagoblin/local/lib/python2.7/site-packages/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py", line 144, in invoke
**context.local_conf)
File "/var/www/mediagoblin/local/lib/python2.7/site-packages/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/util.py", line 55, in fix_call
val = callable(*args, **kw)
File "/var/www/mediagoblin/local/lib/python2.7/site-packages/Paste-1.7.5.1-py2.7.egg/paste/urlmap.py", line 25, in urlmap_factory
app = loader.get_app(app_name, global_conf=global_conf)
File "/var/www/mediagoblin/local/lib/python2.7/site-packages/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py", line 350, in get_app
name=name, global_conf=global_conf).create()
File "/var/www/mediagoblin/local/lib/python2.7/site-packages/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py", line 710, in create
return self.object_type.invoke(self)
File "/var/www/mediagoblin/local/lib/python2.7/site-packages/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/loadwsgi.py", line 146, in invoke
return fix_call(context.object, context.global_conf, **context.local_conf)
File "/var/www/mediagoblin/local/lib/python2.7/site-packages/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/util.py", line 55, in fix_call
val = callable(*args, **kw)
File "/var/www/mediagoblin/mediagoblin/app.py", line 281, in paste_app_factory
mgoblin_app = MediaGoblinApp(mediagoblin_config)
File "/var/www/mediagoblin/mediagoblin/app.py", line 90, in __init__
setup_plugins()
File "/var/www/mediagoblin/mediagoblin/init/plugins/__init__.py", line 56, in setup_plugins
__import__(plugin_module)
File "/var/www/mediagoblin/mediagoblin/media_types/image/__init__.py", line 20, in <module>
from mediagoblin.media_types.image.processing import sniff_handler, \
File "/var/www/mediagoblin/mediagoblin/media_types/image/processing.py", line 31, in <module>
from mediagoblin.tools.exif import exif_fix_image_orientation, \
File "/var/www/mediagoblin/mediagoblin/tools/exif.py", line 20, in <module>
from EXIF import process_file
ImportError: No module named EXIF
Removing PID file /var/run/mediagoblin/mediagoblin-paster.pid
If I run with the command-line of www-data (the user I want to run use for mediagoblin) CELERY_ALWAYS_EAGER=false /var/www/mediagoblin/bin/paster serve /var/www/mediagoblin/paste_local.ini --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543 --pid-file=/var/run/mediagoblin/mediagoblin-paster.pid --log-file=/var/log/mediagoblin/mediagoblin-paster.log, I got the following.
2014-03-11 16:19:36,807 INFO [mediagoblin.app] GNU MediaGoblin 0.6.2.dev main server starting
2014-03-11 16:19:36,850 INFO [mediagoblin.app] Setting up plugins.
2014-03-11 16:19:36,850 INFO [mediagoblin.init.plugins] Importing plugin module: mediagoblin.plugins.geolocation
2014-03-11 16:19:36,850 INFO [mediagoblin.init.plugins] Importing plugin module: mediagoblin.plugins.basic_auth
2014-03-11 16:19:36,850 INFO [mediagoblin.init.plugins] Importing plugin module: mediagoblin.media_types.image
2014-03-11 16:19:37,004 INFO [mediagoblin.init.celery] Setting celery configuration from object "mediagoblin.init.celery.dummy_settings_module"
Starting server in PID 24561.
If I run exaclty the same as the init file but with su su -s /bin/sh -c "CELERY_ALWAYS_EAGER=false /var/www/mediagoblin/bin/paster serve /var/www/mediagoblin/paste_local.ini --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543 --pid-file=/var/run/mediagoblin/paster.pid --log-file=/var/log/mediagoblin/paster.log --daemon" - www-data, I have the same ImportError: No module named EXIF.
Could it be a difference between ENV_SUPATH and ENV_PATH of www-data ? I asked on IRC what could be happening and @paroneayea pointed it could be a PATH issue: "it might be that it doesn't have things properly on its PATH... I"m not sure." I've seen using su of the Debian documentation, but I don't understand how it could be fixed.