首页 > 解决方案 > 已解决:Plone 不会通过 SVN 签出开发插件。原因:Plone 附加组件的名称中不能有破折号

问题描述

已解决的问题:创建 Plone 附加项目时,请确保在与 Bob 先生一起创建附加项目时,您的附加项目名称没有任何破折号。我花了大约 3 个小时才弄清楚这一点。

我打算为 Plone 开发一个附加组件。从阅读手册后收集到的信息来看,与我的开发工具兼容的最佳方法是设置一个独立的 SVN HTTP 服务器,并让 Plone 将我的附加组件的源代码检出到它自己的目录中。

读完之后,我开始安装 Bob 先生和 Plone 的 bobtemplates ( pip install mr.bob bobtemplates.plone)。然后我在我的 SVN 服务器上创建了一个新目录,将其签出到我的本地文件系统中的一个新目录中svn checkout https://192.168.1.10/svn/SVN/plone-test/trunk,并以这种方式初始化了一个新项目:

~/plone/test/trunk$ mrbob -O plone.app.RAKK-test bobtemplates.plone:addon

Welcome to mr.bob interactive mode. Before we generate directory structure, some questions need to be answered.

Answer with a question mark to display help.
Values in square brackets at the end of the questions show the default value if there is no answer.


--> Author's name [FakeGitUserOrEmail]: RAKK

--> Author's email [FakeGitUserOrEmail]: rakk@example.com

--> Author's GitHub username:

--> Package description [An add-on for Plone]: Add-on test for Plone

--> Do you want me to initialze a GIT repository in your new package? (y/n) [y]: n

--> Plone version [5.1]: 5.2

--> Python version for virtualenv [python2.7]: python3.7


git init is disabled!
Generated file structure at /home/user/plone/test/trunk/plone.app.RAKK-test

然后我将我新创建的源上传到 Subversion: svn add *,然后svn commit.

新建项目后,我在配置文件中添加了以下条目/opt/plone/zinstance/develop.cfg

[sources]
plone.app.RAKK-test = svn https://192.168.1.10/svn/SVN/plone-test/trunk/plone.app.RAKK-test

[buildout]
always-accept-server-certificate = true

为了排除证书接受可能出现的问题,我创建了一个名为的临时目录/tmp/plone-temp并将其所有权设置为,然后在 user :chown -R plone_buildout:plone_group /tmp/plone-temp下运行 SVN 结帐。SVN 确实要求我信任我的服务器的证书,我选择了永久信任它的选项。plone_buildoutsudo -u plone_buildout svn checkout https://192.168.1.10/svn/SVN/plone-test/trunk/plone.app.RAKK-test

然后,在没有运行 Plone 的情况下,我让 Buildout 应用开发配置:cd /opt/plone/zinstance,然后sudo -u plone_buildout bin/buildout -c develop.cfg.

但是,Buildout 失败并出现以下错误:

root@host:/opt/plone/zinstance# sudo -u plone_buildout bin/buildout -c develop.cfg
mr.developer: Queued 'plone.app.RAKK-test' for checkout.
mr.developer: Checked out 'plone.app.RAKK-test' with subversion.
Develop: '/opt/plone/zinstance/src/plone.app.RAKK-test'
error in plone.app.RAKK-test setup command: ("EntryPoint must be in 'name=module:attrs [extras]' format", 'update_locale = plone.app.RAKK-test.locales.update:update_locale')
While:
  Installing.
  Processing develop directory '/opt/plone/zinstance/src/plone.app.RAKK-test'.

An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
  File "/opt/plone/zinstance/lib/python3.7/site-packages/zc/buildout/buildout.py", line 2174, in main
    getattr(buildout, command)(args)
  File "/opt/plone/zinstance/lib/python3.7/site-packages/zc/buildout/buildout.py", line 679, in install
    installed_develop_eggs = self._develop()
  File "/opt/plone/zinstance/lib/python3.7/site-packages/zc/buildout/buildout.py", line 922, in _develop
    zc.buildout.easy_install.develop(setup, dest)
  File "/opt/plone/zinstance/lib/python3.7/site-packages/zc/buildout/easy_install.py", line 1100, in develop
    call_subprocess(args)
  File "/opt/plone/zinstance/lib/python3.7/site-packages/zc/buildout/easy_install.py", line 166, in call_subprocess
    % repr(args)[1:-1])
Exception: Failed to run command:
'/opt/plone/zinstance/bin/python3.7', '/tmp/tmp7pwev_7c', '-q', 'develop', '-mN', '-d', '/opt/plone/zinstance/develop-eggs/tmpd785ylqtbuild'

这意味着您的项目名称中有一个连字符,这使得它与 pip 不兼容,这显然是 Plone 用于加载定制开发的插件的后端。

标签: svnplone

解决方案


经过 3 个小时的头撞墙并第十次重新阅读所有内容后,我在我链接的线程上发现了一个建议,即我的包名称中可能包含破折号使其与 pip 不兼容。在再次完成所有这些步骤但名称没有连字符后,Buildout 终于拿起了我的包裹。

因此,我宣布这个问题已经解决,并将这个问题留在这里,以使每个人的生活更轻松,因为很容易陷入这个错误并且弄清楚它不是微不足道的。


推荐阅读