Skip to content

ImportError: No module named EXIF #4

Open
@gllmhyt

Description

@gllmhyt

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions