1

我正在按照《Professional Plone 4 Development》一书开头的说明设置开发环境。我采取了以下步骤。

首先,我创建了一个名为 virtualenvpln的项目目录,也称为pln

其次,我将 PIL 安装到plnvirtualenv 中。

第三,我创建了一个buildout.cfg包含以下内容的文件:

[buildout]
extends = http://dist.plone.org/release/4.2/versions.cfg
parts = instance
[instance]
recipe = plone.recipe.zope2instance
user = admin:admin
eggs = Plone

四、我bootstrap.pyhttp://svn.plone.org/svn/plone/buildouts/plone-coredev/branches/4.2/bootstrap.py下载

第五,我运行了命令python bootstrap.py --distribute,它给出了以下输出:

Downloading http://pypi.python.org/packages/source/d/distribute/distribute-0.6.29.tar.gz
Extracting in /var/folders/xk/5xt9s5vd4bqd731qdkmxkxyr0000gn/T/tmpwMBNe9
Now working in /var/folders/xk/5xt9s5vd4bqd731qdkmxkxyr0000gn/T/tmpwMBNe9/distribute-0.6.29
Building a Distribute egg in /var/folders/xk/5xt9s5vd4bqd731qdkmxkxyr0000gn/T/tmpKSPdWX
/var/folders/xk/5xt9s5vd4bqd731qdkmxkxyr0000gn/T/tmpKSPdWX/distribute-0.6.29-py2.7.egg
Creating directory '/Users/Jon/dev/pln/bin'.
Creating directory '/Users/Jon/dev/pln/parts'.
Creating directory '/Users/Jon/dev/pln/eggs'.
Creating directory '/Users/Jon/dev/pln/develop-eggs'.
Generated script '/Users/Jon/dev/pln/bin/buildout'.

第六,从项目目录中运行命令bin/buildout。有一段时间似乎一切正常,但随后我开始收到大量类似于以下的错误消息:

SyntaxError: ("'return' outside function", ('build/bdist.macosx-10.8-x86_64/egg/Products/kupu/plone/kupu_plone_layer/convertContentForKupu.py', 23, None, 'return str(content)\n'))

SyntaxError: ("'return' outside function", ('/Users/Jon/dev/pln/eggs/tmpEwAZSu/Products.CMFPlone-4.2.0.1-py2.7.egg/Products/CMFPlone/skins/plone_scripts/redirectToReferrer.py', 18, None, 'return request.RESPONSE.redirect(target_url)\n'))

SyntaxError: ("'return' outside function", ('build/bdist.macosx-10.8-x86_64/egg/Products/Archetypes/skins/archetypes/unicodeTestIn.py', 11, None, 'return 0\n'))

最后,运行bin/buildout失败并出现以下错误:

While: Installing instance.
Getting distribution for 'plone.outputfilters==1.3'.

An internal error occured due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
File "/Users/Jon/dev/pln/eggs/zc.buildout-1.4.4-py2.7.egg/zc/buildout/buildout.py", line 1683, in main
    getattr(buildout, command)(args)
File "/Users/Jon/dev/pln/eggs/zc.buildout-1.4.4-py2.7.egg/zc/buildout/buildout.py", line 555, in install
    installed_files = self[part]._call(recipe.install)

[about 50 lines of stack trace admitted for brevity...]

File "/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 365, in _read_status
line = self.fp.readline()
File "/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 447, in readline
data = self._sock.recv(self._rbufsize)

error: [Errno 54] Connection reset by peer

为什么连接在最后被对等方重置?这是哪个对等方,我如何控制这样的错误?

非常感谢您的帮助。

4

2 回答 2

1

从“Professional Plone 4 Development”一书中,我得到了为什么会出现语法错误的答案:

当 Setuptools/Distribute 尝试预编译某些 Python 脚本时,您可能还会看到一些关于“语法错误”的警告。您可以放心地忽略这些。发布它们是因为,这些脚本不是普通的 Python 模块,而是旨在在 Zope 不受信任的脚本环境中执行的脚本。

  • 马丁·阿斯佩利 (2011-08-26)。Professional Plone 4 Development(第 38 页)。包出版。Kindle版。

但是,我仍然不确定为什么会bin/buildout失败。我刚刚再次尝试一切新鲜的,我得到了这个错误:

尽管:
  安装。
  获取部分实例。
  初始化节实例。
  安装配方 plone.recipe.zope2instance。
  获取 'docutils==0.9.1' 的分发版。

由于 zc.buildout 或
正在使用的配方:
回溯(最近一次通话最后):
  文件“/Users/Jon/dev/pl/eggs/zc.buildout-1.4.4-py2.7.egg/zc/buildout/buildout.py”,第 1683 行,在 main
    getattr(构建,命令)(参数)
  安装中的文件“/Users/Jon/dev/pl/eggs/zc.buildout-1.4.4-py2.7.egg/zc/buildout/buildout.py”,第 439 行
    [self[part]['recipe'] for part in install_parts]

** 为简洁起见,省略了 50 条左右的堆栈跟踪行 **

  _read_status 中的文件“/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py”,第 365 行
    line = self.fp.readline()
  文件“/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py”,第 447 行,在 readline
    数据 = self._sock.recv(self._rbufsize)
超时:超时

编辑:好的,我发现整个事情都不适用于 Plone 4.2。只需将所有内容改为 4.1,它bin/buildout就会完成而不会崩溃。

于 2012-10-21T23:58:14.330 回答
0

在我看来,您使用的是系统 python 而不是 virtualenv python。您是否使用您的 virtualenv python 来引导您的构建?

您刚刚提到运行“python bootstrap.py”。因此,除非您运行“source MyVirtualEnvDir/bin/activate”,否则您会调用系统 python。如果您使用 pip 或 easyinstall 在系统 python 中安装了模块,那么其中一些模块可能会与您的构建冲突并导致一些奇怪的错误。

顺便说一句,正如其他人指出的那样,超时也可能是由服务器或网络错误引起的。

为什么不能只使用统一安装程序?它是最容易使用的,您仍然可以使用它来尝试 Martin 书中建议的活动。

于 2012-10-24T15:11:22.263 回答