Posts Tagged ‘eclipse’

2009/12/11

话说cvs安装真的够容易的了,现在觉得,但是当初安装的时候足足折腾了我一天!

cvs服务器是那种基于windows平台的,他的用户也就是window的用户,新建具有管理员权限的账户。

cvs服务器安装过程:

一、下载cvs:

刚开始我下的是2.5的,没搞成,就换成2.0的了,实际上我还是没搞成,可能因为机器的原因,但是在另外一台机器上就可以了。

二、安装:按照默认一直点—->finish.然后设置:

1、建两个文件夹比如:D:\MyPro、D:\MyPro\Temp,设置MyPro文件夹的访问权限:在工具–>文件夹选项—>查看–>把使用简单文件共享一项前面的勾去掉。右键单击MyPro文件夹–>安全和共享–>安全–>设置上面用户的权限,全选。

2、在设置cvs服务器的时候最好把它的服务停掉。

3、建仓库:点击Repositories,创建仓库

image

location选择我们刚刚建的D:\MyPro,这时候name会自动变成/MyPro,点击OK,他会问你初次创建什么什么的,点击OK,仓库就创建好了。

4、设置Advanced选项,Temproary实际上随便一个文件夹都是可以的。然后更改Lock后面的为localhost。

image

5、设置Compatibility

image

第一项是说兼容问题。最好选上。

配置完毕。需要注意的问题如下:

(一)、创建多个用户的时候自己的Administrator账户在计算机启动的时候就不见了,这个可以在网上搜一下,改一下注册表就OK了。

(二)、非常重要,就是防火墙问题,如果你装服务器的电脑上装了防火墙,可能就会出现连接不上的问题,建议关闭防火墙,注:windows也有自带的防火墙。

这样基本就OK了,测试一下。

在Eclipse上配置客户端(先启动cvs)

image

Connection Type:pserver、Host:服务器Ip、Repository path就是我们配置的那个仓库的Name了。

可能还不够详细,不过自己下次再配应该可以记住了。大白痴,记上一笔。

—-2009/09/27

Related posts

Tags: ,.
2009/10/20

第一次用代码编辑助手(Content Assistants)这类东西是 VC 上的 Visual Assist,俗称 VA,强大不是吹出来的。最近发现一篇 Eclipse 下针对 PyDev 的 CA 介绍,忍不住转载过来,全文在这里《PyDev for Eclipse 简介》,via:IBM developerWorks 中国。Eclipse 的 CA 看起来还是很强大的。

—————转载分界线——————

源代码编辑助手 (Content Assistants)

源代码编辑助手 (Content Assistants,以下简称 CA),顾名思义,即用于帮助开发者编辑源程序,它提供了诸多方便实用的功能,引导开发者进行高效快速的项目开发。

通过快捷键 Ctrl+1 可以激活 CA,它支持的功能如下:

PyDev

  1. Move import to global scope
  2. Create docstring
  3. Assign result to new local variable (or field)
  4. Assign parameters to attributes
  5. Surround code with try..except or try..finally

PyDev Extensions

  1. Make import for undefined token
  2. Ignore error
  3. Don’t analyze module

在安装 PyDev 时,PyDev 和 PyDev Extensions 包都已安装,所以 CA 的这几大功能现在都支持。首先,先介绍如何使用 PyDev 包含的 CA 功能。

  • PyDev 的 CA 功能
  1. Move import to global scope

以如下代码为例,将光标移至 import sys 后,启动快捷键 Ctrl+1 激活 CA,”Move import to global scope” 出现在标签中,按 Enter 应用此功能。如果不想应用该功能,可以按 Esc 键取消。

#!/usr/bin/python –u
sys.path.append(“./VirtualFS”)
import sys

应用该功能后,import sys 被成功移至全局范围内,消除了之前的错误。改变后的代码如下。

#!/usr/bin/python –u
import sys
sys.path.append(“./VirtualFS”)
  1. Create docstring

Create docstring 功能可以自动为函数添加参数注解。将光标移至如下代码行,启动快捷键Ctrl+1 激活 CA,标签栏中出现 ”Make docstring”。

def __init__(self, dbUser, dbPswd, dbHost):

按 Enter 应用该功能后,自动为该函数添加了参数注解。

def __init__(self, dbUser, dbPswd, dbHost):
		'''

		@param virtualOperator:
		@param database:
		@param hostname:
		@param workDir:
	'''
  1. Assign result to new local variable (or field)

CA 还提供一种功能能够将函数返回结果赋给新的内部变量。以函数 callMethod 为例,将光标移至 a.callMethod() 行激活 CA。

     def method (self, a):
	a.callMethod()

选择 ”Assign to field(self, callMethod)” 或者 ”Assign to local(callMethod)”,可以将a.callMethod() 结果赋给新的内部变量 self.callMethod,改变后的代码如下。

     def method (self, a):
	self.callMethod = a.callMethod()
  1. Assign parameters to attributes

在程序编辑过程中,如果需要把函数参数赋给变量,可以使用 CA 的 Assign parameters to attributes 功能自动完成这样的需求。将光标移至函数 m1 所在行,激活 CA。

    class Foo(object):
	Def m1(self, a, b):

在标签栏中选择 ”Assign parameters to attributes”,自动生成两行代码将参数 a,b 赋给同名变量。

class Foo(object):
	def m1(self, a, b):
		self.a = a
		self.b = b
  1. Surround code with try..except or try..finally

对可能产生异常的代码,要进行异常捕获,通常使用 try..except 或者 try..finally 语句来捕获异常。选中一段代码 print usage,激活 CA 的 ” Surround code with try..except or try..finally”功能,可以自动对 print usage 进行异常捕获。

 import sys
def method (self, usage):
	  try:
	      print usage
	  except:
	      raise

下面,再介绍 PyDev Extensions 包含的 CA 功能是如何被运用的。

  • PyDev Extension 的 CA 功能
  1. Make import for undefined token

以如下一段代码为例,xmlreader 未定义,语法分析出错。

     class Test:
	def method(self):
	     xmlreader

将鼠标移至出错行,启动快捷键 Ctrl+1 激活 CA,选择标签栏中的 ”Import xmlreader(xml.sax)”,自动生成一行代码 from xml.sax import xmlreader,语法错误消除。

from xml.sax import xmlreader
  class Test:
	def method(self):
	     xmlreader
  1. Ignore error

仍以上述代码为例,由于 xmlreader 没有被定义,包含语法错误,在这一行激活 CA,选择 ”UndefinedVariable”,语法错误被忽略,xmlreader 后自动生成一行注释标明 ”#@UndefinedVariable”。

  class Test:
	def method(self):
	     xmlreader #@UndefinedVariable
  1. Don’t analyze module

语法分析器可以帮助显示包含语法错误的代码,但在程序编辑过程中,有时候需要刻意取消对程序的语法分析,CA 的 Don’t analyze module 提供了这样的功能。

将光标移至程序第一行,激活 CA,选择 ”@PydevCodeAnalysisIgnore”,自动生成一行代码 ”#@ PydevCodeAnalysisIgnore”,忽略对程序体的语法分析。

#@PydevCodeAnalysisIgnore
   class Test:
	def method(self):
	     	     xmlreader
  1. Quick Outline

对特定的 Python 文件,Pydev Extensions 提供的 Quick Outline 能最简单快捷地获取该文件的组织结构,并能在该文件中方便地查询定位所需信息。

在 Pydev 透视图中,选择 Source -> Show Quick Outline,或者使用快捷键 Ctrl+O 启动该功能。

Python 文件的类、函数等组织架构便以树状形式被形象地展现出来。同时,Filter 提供了查询定位的功能,可以方便地查询所需信息并定位到相应的代码段。

图 8. Quick Outline

Quick Outline

  1. Globals Browser

Globals Browser 是 Pydev Extensions 提供的另外一种强大的查询定位功能。它可以查询定位整个工程内的一些定义和属性,包括:

    • 类定义
    • 方法定义
    • 全局变量
    • 类以及实例属性

通过三种方式可以启动该功能。

  • 在 Pydev 透视图中,从菜单栏中选择 Pydev -> Globals Browser。
  • 在Pydev 透视图中,工具栏有如下的一个小图标,鼠标移至该图标上方,显示 ”Pydev: Globals Browser” 标注。点击该图标按钮,可以启动 Globals Browser 功能。
  • 通过快捷键 Ctrl + Shift + T,可以快速启动 Globals Browser 功能。

在 Filter 中输入所要查询的定义、变量或者属性,Globals Browser 可以快速地定位到相应的代码段。

  1. Hierarchy View

当某个 python 文件包含多个类时,如何才能简单直观地了解各个类之间的依存关系?Hierarchy View 提供了这样的功能,它能将多个类之间的层次关系以树状结构直观地显示出来。

以一段 Python 代码为例,定义了 Super1, Super2, ToAnalyze 和 Sub1 四个类。在 Pydev透视图中,选择 Windows -> Show View -> Other,在弹出的 Show View 窗口中,选择 Pydev -> Hierarchy View。按快捷键 F4 激活 Hierarchy View,可以看到树状图中显示出了类间的层次关系。

图 12. 在 Hierarchy View 中显示类的层次关系

在 Hierarchy View 中显示类的层次关系

Hierarchy View 还支持以下四个功能:

  • 在层次图中,用鼠标单击某个类,图下方即显示出该类的方法。
  • 如果双击某个类、方法或者属性,则会调出源程序,进入对该类、方法或者属性的编辑状态。
  • 在 Hierarchy View 中,按住鼠标右键,并相左或向右移动鼠标,层次图则会相应地缩小或放大。
  • 在 Hierarchy View 中,按住鼠标左键移动鼠标,层次图则会被随意拖动到相应的位置。

———————–转载结束————————

Related posts

Tags: ,,,.
2009/10/19

Eclipse 不能切换到 Debug 调试模式,提示错误信息为:Unexpected error setting up the debugger,详细错误信息:

java.net.SocketException: select failed
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(Unknown Source)
at java.net.ServerSocket.implAccept(Unknown Source)
at java.net.ServerSocket.accept(Unknown Source)
at org.python.pydev.debug.model.remote.ListenConnector.run(ListenConnector.java:40)
at java.lang.Thread.run(Unknown Source)

Google到的解决办法:卸载 TCP/IP 协议 6,也就是 IPV6 协议,好像 Eclipse 跟 IPV6 协议有一定冲突吧。

Related posts

Tags: ,.