跳转到主要内容

为Eclipse创建Pydev项目。

项目描述

rbco.recipe.pyeclipse

概述

此配方创建一个Pydev项目。目标是自动化以下策略

  1. 创建一个Pydev项目。 项目目录与源代码目录分离。换句话说,源代码不会位于项目目录内。

  2. 创建指向源代码目录的链接。 这是在Pydev包资源管理器中右键单击项目,选择“新建”->“文件夹”,然后点击“高级”并选择“链接到文件系统中的文件夹”完成的。

  3. 将链接的目录添加到项目的PYTHONPATH中。

此方法在处理Zope/Plone时效果非常好,特别是如果与collective.recipe.omelette结合使用,如Martin Aspeli在这篇文章中指出的。

但是,它应该足够灵活,允许其他策略。

运行配方后,请前往Eclipse中的“文件”->“导入…”->“将现有项目导入工作区”以将项目导入Eclipse。

支持选项

该配方支持以下选项

project-name

项目名称。

python-version

用于语法分析的Python版本,例如2.4或2.5。

python-interpreter

可选。Python解释器的路径。默认为Eclipse中配置的默认解释器。

project-directory

项目配置文件将存储的目录。

source-resources

一组由空格或换行符分隔的路径。这些将被添加为链接目录(或文件)并包含在PYTHONPATH中。

extra-linked-resources

一组由空格或换行符分隔的路径。这些只将被添加为链接目录(或文件)。

extra-pythonpath-resources

一组由空格或换行符分隔的路径。这些只将被添加到PYTHONPATH中。

示例用法

设置

>>> from os.path import join
>>> egg_zip_filename = 'some.egg.zip'
>>> src_dirname = 'my.python.package'
>>>
>>> test_dir = tmpdir('testdir')
>>>
>>> mkdir(test_dir, src_dirname)
>>> src_dir = join(test_dir, src_dirname)
>>>
>>> write(test_dir, egg_zip_filename, 'foo')
>>> egg_zip_file = join(test_dir, egg_zip_filename)

我们将从创建一个典型的使用该菜谱的buildout开始

>>> write('buildout.cfg',
... """
... [buildout]
... parts = eclipse_project
...
... [eclipse_project]
... recipe = rbco.recipe.pyeclipse
... project-name = TestProject
... python-version = 2.4
... project-directory = ${buildout:directory}/testproject
... source-resources =
...     %(src_dir)s
...     %(egg_zip_file)s
... """ % locals())

>>> #cat('buildout.cfg')

请注意,我们添加了两个源资源:一个目录和一个zip egg。

运行buildout后,我们得到

>>> print 'start', system(buildout)
start...
Installing eclipse_project.
<BLANKLINE>

如果项目目录不存在,则会创建该目录,并且相应的.project和.pydevproject文件也会被创建。.project文件将如下所示

>>> cat(join(sample_buildout, 'testproject', '.project'))
<?xml version='1.0' encoding='utf-8'?>
<projectDescription>
 <name>TestProject</name>
 ...
 <buildspec>
  <buildcommand>
   <name>org.python.pydev.PyDevBuilder</name>
   ...
  </buildcommand>
 </buildspec>
 <natures>
  <nature>org.python.pydev.pythonNature</nature>
 </natures>
 <linkedResources>
 ...
 </linkedResources>
</projectDescription>

让我们来看看<linkedResources>标签。在source-resources部分中列出的路径必须在那里列出

>>> cat(join(sample_buildout, 'testproject', '.project'))
<?xml...
<linkedResources>...
  <link>
    <name>my.python.package</name>
    ...testdir/my.python.package</location>
    <type>2</type>
  </link>...
</linkedResources>...

egg zip文件也存在

>>> cat(join(sample_buildout, 'testproject', '.project'))
<?xml...
<linkedResources>...
  <link>
    <name>some.egg.zip</name>
    ...testdir/some.egg.zip</location>
    <type>1</type>
  </link>...
</linkedResources>...

已知错误、注意事项和技巧

  • 如果你收到错误消息,在详细信息中提到“文件不能链接到文件夹”,那么尝试重新构建你的buildout,运行:bin/buildout -Nov

    这可能是由于在菜谱配置中提到的目录创建之前,pyeclipse菜谱已经运行。这通常在使用omelettes时发生。

    然后你可能需要重新在Eclipse中重建你的项目。请参阅下一条项目。

  • 如果Pydev停止分析或自动完成你的代码

    • 尝试修复你项目中的任何语法错误。Pydev似乎在发现任何语法错误时停止处理你的文件。

    • 检查PYTHONPATH中的所有目录是否在内部都有一个__init__.py文件,包括根目录。

    • 检查Python版本是否设置正确。检查项目 -> 属性 -> “Pydev - 项目类型” -> “语法版本”。

      可以使用菜谱的python-version选项来配置Python版本。

  • 修复上述错误后,如果Pydev仍然不正常工作,则尝试重新构建你的项目。执行以下操作

    • 检查“项目 -> 自动构建”是否打开。然后转到“项目 -> 清理”并清理你的项目。项目将被重建。

    • 转到“项目 -> 属性 -> Pydev - PYTHONPATH”并点击“强制恢复内部信息”。

参考文献

变更日志

0.0.5 (2009-05-29)

  • 为了在涉及scrapy的项目中使用菜谱,对BeautifulSoup的版本要求变得更加宽松。

0.0.4 (2009-05-12)

  • 改进了README.txt中的“已知问题、注意事项和技巧”部分。

0.0.3 (2009-05-04)

  • 再次纠正XML格式,修复Python版本错误。

  • 改进文档。

0.0.2 (2009-05-04)

  • 纠正XML格式。

0.0.1 (2009-05-04)

  • 第一个版本。

待办事项

  • 编写更多测试,包括可选选项。

贡献者

  • Rafael Oliveira,作者

项目详情


下载文件

下载适合你平台的文件。如果你不确定选择哪个,了解更多关于安装包的信息。

源分发

rbco.recipe.pyeclipse-0.0.5.zip (23.3 kB 查看哈希值)

上传于 来源

支持者