svn - 已解决: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_buildout
sudo -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 用于加载定制开发的插件的后端。
解决方案
经过 3 个小时的头撞墙并第十次重新阅读所有内容后,我在我链接的线程上发现了一个建议,即我的包名称中可能包含破折号使其与 pip 不兼容。在再次完成所有这些步骤但名称没有连字符后,Buildout 终于拿起了我的包裹。
因此,我宣布这个问题已经解决,并将这个问题留在这里,以使每个人的生活更轻松,因为很容易陷入这个错误并且弄清楚它不是微不足道的。
推荐阅读
- sql - 如何在子查询中使用 select 语句?(邮政格力)
- azure - Azure AD B2C 创建用户时出现 Graph API 错误
- roomle - 使用请求产品按钮打开表单
- c# - ASP.NET Core MVC 视图无法从控制器参数中读取
- angular - 如何通过单击外部按钮在 aggrid 中动态更改样式?
- python - 将 PySpark 连接到 HIVE Horton 数据平台
- openssl - BN_bn2bin 的结果大小有时是 31 而不是 32 在签名-> r 或签名-s 上由 ECDSA_do_verify 生成
- python - SQL Sub_query 和联合
- websocket - 如何在 BSC 上获取待处理的交易
- javascript - HTML 中的 IFRAME 是否有 GET 和 POST 方法?