The Eggs War - Plone 5.1.x vs (Plone 5.2 and the end of Python 2.7)

The Problem

Since January, I've noticed pip keeps on warning me about the end of Python 2.7 support and I've been getting some weird buildout and instance errors. The latest error I've gotten is the following:

  File "/home/ubuntu/workspace/eggs/z3c.autoinclude-0.3.7-py2.7.egg/z3c/autoinclude/", line 101, in includePluginsDirective
    info = PluginFinder(dotted_name).includableInfo(zcml_to_look_for)
  File "/home/ubuntu/workspace/eggs/z3c.autoinclude-0.3.7-py2.7.egg/z3c/autoinclude/", line 18, in includableInfo
    groups = zcml_to_include(plugin_dottedname, zcml_to_look_for)
  File "/home/ubuntu/workspace/eggs/z3c.autoinclude-0.3.7-py2.7.egg/z3c/autoinclude/", line 36, in zcml_to_include
    filename = resource_filename(dotted_name, zcmlgroup)
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/", line 1142, in resource_filename
    return get_provider(package_or_requirement).get_resource_filename(
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/", line 359, in get_provider
  File "/home/ubuntu/workspace/eggs/contentrules.slack-1.0.0a1-py2.7.egg/contentrules/slack/", line 3, in <module>
    from prettyconf import config
  File "/home/ubuntu/workspace/eggs/prettyconf-2.0.1-py2.7.egg/prettyconf/", line 1, in <module>
    from .configuration import Configuration
  File "/home/ubuntu/workspace/eggs/prettyconf-2.0.1-py2.7.egg/prettyconf/", line 7, in <module>
    from .loaders import Environment, RecursiveSearch
  File "/home/ubuntu/workspace/eggs/prettyconf-2.0.1-py2.7.egg/prettyconf/", line 2, in <module>
    from configparser import ConfigParser, MissingSectionHeaderError, NoOptionError
zope.configuration.xmlconfig.ZopeXMLConfigurationError: File "/home/ubuntu/workspace/parts/instance/etc/site.zcml", line 12.2-12.39
    ZopeXMLConfigurationError: File "/home/ubuntu/workspace/eggs/Products.CMFPlone-5.1.4-py2.7.egg/Products/CMFPlone/meta.zcml", line 37.4-41.10
    ImportError: No module named configparser

The Solution

# Allow lower version than Zope 4
five.formlib = 1.0.4

# Pre-Python 2.7 deprecation
configparser = 3.5.0
prettyconf = 1.2.3

# Prep-Python 2.7 deprecation
# five.formlib = 2.0
zExceptions = 3.4
1 Like

Seems like something is off in contentrules.slack.
It uses prettyconf to load some config stuff, though I don't see where from specifically.
@ericof can we get you in on this?

Looks like contentrules.slack can get rid of the dependency and this should go away.
Could you file a bug at contentrules.slack and/or prettyconf?

Plone Foundation Code of Conduct