Zopeskel error: IOError: No egg-info directory found

Hello,

using the following command:

[root@ber06 src]# ../bin/zopeskel archetype sb.test

I got an error:

Traceback (most recent call last):
  File "../bin/zopeskel", line 256, in <module>
    sys.exit(zopeskel.zopeskel_script.run())
  File "/opt/Plone/buildout-cache/eggs/ZopeSkel-2.21.2-py2.7.egg/zopeskel/zopeskel_script.py", line 397, in run
    command.run( [ '-q', '-t', template_name ] + optslist )
  File "/opt/Plone/buildout-cache/eggs/PasteScript-1.7.5-py2.7.egg/paste/script/command.py", line 238, in run
    result = self.command()
  File "/opt/Plone/buildout-cache/eggs/PasteScript-1.7.5-py2.7.egg/paste/script/create_distro.py", line 170, in command
    egg_info_dir = pluginlib.egg_info_dir(output_dir, dist_name)
  File "/opt/Plone/buildout-cache/eggs/PasteScript-1.7.5-py2.7.egg/paste/script/pluginlib.py", line 135, in egg_info_dir
    % ', '.join(all))
IOError: No egg-info directory found (looked in ./sb.test/./sb.test.egg-info, ./sb.test/sb/sb.test.egg-info, ./sb.test/README.txt/sb.test.egg-info, ./sb.test/docs/sb.test.egg-info, ./sb.test/setup.py/sb.test.egg-info, ./sb.test/setup.cfg/sb.test.egg-info, ./sb.test/CHANGES.txt/sb.test.egg-info, ./sb.test/CONTRIBUTORS.txt/sb.test.egg-info, ./sb.test/MANIFEST.in/sb.test.egg-info)

Before I added ZopeSkel to my buildout using this doc:

# add a 'zopeskel' part to the list of parts in the [buildout] section.
parts =
    ... # some other parts here
    zopeskel # Add this as the last line

# Add this bit at the end of your buildout.cfg
# create zopeskel command in bin/
# with Plone templates
[zopeskel]
recipe = zc.recipe.egg
unzip = true
eggs =
    ZopeSkel <= 3.0
    Paste
    PasteDeploy
    PasteScript
    zopeskel.dexterity
    zopeskel.diazotheme
    ${buildout:eggs}

What is wrong? Do I need something else?

Thanks for help!
Stefan

OK, it seems that I found the error. Writing this in buildout.cfg:

[buildout]
...
develop =
    *src/my.product*
...
[instance]
eggs =
    ${buildout:eggs}
    ${plone:eggs}
    *my.product*
...
zcml =
    my.product

...and later an "bin/buildout" install some more things, so I can use the right paster commands to create the structure:

paster addcontent contenttype
paster addcontent atschema

Then I used:

$ python2.7 bootstrap.py
$ ./bin/buildout
$ ./bin/instance fg

...to compile and start Plone. Later in “portal_quickinstaller” I can see my new product I select and install the product. I got no error on the debug screen:

2017-04-20 13:17:35 INFO Products.GenericSetup.tool Importing profile profile-sb.subscriber:default with dependency strategy upgrade.
2017-04-20 13:17:35 INFO Products.GenericSetup.tool Applying main profile profile-sb.subscriber:default
2017-04-20 13:17:36 INFO GenericSetup.rolemap Role / permission map imported.
2017-04-20 13:17:36 INFO GenericSetup.archetypetool Archetype tool imported.
2017-04-20 13:17:36 INFO GenericSetup.types Types tool imported.
2017-04-20 13:17:36 INFO GenericSetup.types 'Subscriber' type info imported.
2017-04-20 13:17:36 INFO GenericSetup.factorytool FactoryTool settings imported.
2017-04-20 13:17:36 INFO GenericSetup.portlets Portlets imported

...and in "archetype_tool" I can see the product and it's already installed:

sb.subscriber::Subscriber Uninstall

...but in the Plone page I can't see this new item in "Add new...". Why not? What's wong? Do I forgot something else to activate?

Thanks for help!
Stefan

Hi @bieli! Thanks for reaching this forums to discuss your problems :smile:

If you already solved your problem that's great, if you are still wrestling against zopeskel, be aware that zopeskel is no longer the recommended approach to create addons for plone.

You should check out

Which has all the community best practices encoded in.

If you are not so far with you add-on i would strongly encourage you to check it and move to a code base based on it. Specially if you are targeting Plone 5.x

Have fun with plone!

Hi gforcada,

thanks for the input, but now I'm using "paster" for all commands and it worked for me. Do I have the same problem with "paster"? Or do I have to change to Dexterity and leave Archetypes?

By the way I forgot to activate this option:

Enter global_allow (True/False: Globally addable ) [True]: True

Now I can see my product and the changes I do.

Thanks,
Stefan

1 Like

Yes, both zopeskel and paster are deprecated, the new tools is called mrbob and the plone ready template is bobtemplates.plone.

As for Archetypes, again, just like with zopeskel: if you are just starting, yes with no doubt. If you already have a system running and you are expanding it, well probably best not to change it right now, but in a year or two you should migrate to Dexterity.

Since Plone 5, Dexterity is the default content type system, and on Plone 6 (whenever it comes) Archetypes will no longer be around.

So if futureproofness is something that you are looking for, spend your time learning Dexterity and migrating from Archetypes.

The documentation explains the updated way of creating add-ons: https://docs.plone.org/develop/plone/getstarted/index.html#creating-your-first-add-on and https://training.plone.org/5/mastering_plone/eggs1.html?highlight=mrbob

1 Like