为Eclipse创建Pydev项目。
项目描述
rbco.recipe.pyeclipse
概述
此配方创建一个Pydev项目。目标是自动化以下策略
创建一个Pydev项目。 项目目录与源代码目录分离。换句话说,源代码不会位于项目目录内。
创建指向源代码目录的链接。 这是在Pydev包资源管理器中右键单击项目,选择“新建”->“文件夹”,然后点击“高级”并选择“链接到文件系统中的文件夹”完成的。
将链接的目录添加到项目的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,作者