Python 使用Pydev在Eclipse中编译错误
我不熟悉Ubuntu平台中的Eclipse,所以我想用python编程,但是当我使用Run as This编译代码时,向导会显示并要求我以“Ant Build”的形式运行,而不是以python的形式运行,因此当我选择以Ant Build的形式运行时,会显示以下消息: 这是一段代码:Python 使用Pydev在Eclipse中编译错误,python,eclipse,python-3.x,pydev,Python,Eclipse,Python 3.x,Pydev,我不熟悉Ubuntu平台中的Eclipse,所以我想用python编程,但是当我使用Run as This编译代码时,向导会显示并要求我以“Ant Build”的形式运行,而不是以python的形式运行,因此当我选择以Ant Build的形式运行时,会显示以下消息: 这是一段代码: #!/usr/bin/python3 # saytime.py by Bill Weinman [http://bw.org/] # created for Python 3 Essential Training o
#!/usr/bin/python3
# saytime.py by Bill Weinman [http://bw.org/]
# created for Python 3 Essential Training on lynda.com
# Copyright 2010 The BearHeart Gorup, LLC
import sys
import time
__version__ = "1.1.0"
class numwords():
"""
return a number as words,
e.g., 42 becomes "forty-two"
"""
_words = {
'ones': (
'oh', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'
), 'tens': (
'', 'ten', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'
), 'teens': (
'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen'
), 'quarters': (
'o\'clock', 'quarter', 'half'
), 'range': {
'hundred': 'hundred'
}, 'misc': {
'minus': 'minus'
}
}
_oor = 'OOR' # Out Of Range
def __init__(self, n):
self.__number = n;
def numwords(self, num = None):
"Return the number as words"
n = self.__number if num is None else num
s = ''
if n < 0: # negative numbers
s += self._words['misc']['minus'] + ' '
n = abs(n)
if n < 10: # single-digit numbers
s += self._words['ones'][n]
elif n < 20: # teens
s += self._words['teens'][n - 10]
elif n < 100: # tens
m = n % 10
t = n // 10
s += self._words['tens'][t]
if m: s += '-' + numwords(m).numwords() # recurse for remainder
elif n < 1000: # hundreds
m = n % 100
t = n // 100
s += self._words['ones'][t] + ' ' + self._words['range']['hundred']
if m: s += ' ' + numwords(m).numwords() # recurse for remainder
else:
s += self._oor
return s
def number(self):
"Return the number as a number"
return str(self.__number);
class saytime(numwords):
"""
return the time (from two parameters) as words,
e.g., fourteen til noon, quarter past one, etc.
"""
_specials = {
'noon': 'noon',
'midnight': 'midnight',
'til': 'til',
'past': 'past'
}
def __init__(self, h, m):
self._hour = abs(int(h))
self._min = abs(int(m))
def words(self):
h = self._hour
m = self._min
if h > 23: return self._oor # OOR errors
if m > 59: return self._oor
sign = self._specials['past']
if self._min > 30:
sign = self._specials['til']
h += 1
m = 60 - m
if h > 23: h -= 24
elif h > 12: h -= 12
# hword is the hours word)
if h is 0: hword = self._specials['midnight']
elif h is 12: hword = self._specials['noon']
else: hword = self.numwords(h)
if m is 0:
if h in (0, 12): return hword # for noon and midnight
else: return "{} {}".format(self.numwords(h), self._words['quarters'][m])
if m % 15 is 0:
return "{} {} {}".format(self._words['quarters'][m // 15], sign, hword)
return "{} {} {}".format(self.numwords(m), sign, hword)
def digits(self):
"return the traditionl time, e.g., 13:42"
return "{:02}:{:02}".format(self._hour, self._min)
class saytime_t(saytime): # wrapper for saytime to use time object
"""
return the time (from a time object) as words
e.g., fourteen til noon
"""
def __init__(self, t):
self._hour = t.tm_hour
self._min = t.tm_min
def main():
if len(sys.argv) > 1:
if sys.argv[1] == 'test':
test()
else:
try: print(saytime(*(sys.argv[1].split(':'))).words())
except TypeError: print("Invalid time ({})".format(sys.argv[1]))
else:
print(saytime_t(time.localtime()).words())
def test():
print("\nnumbers test:")
list = (
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 19, 20, 30,
50, 51, 52, 55, 59, 99, 100, 101, 112, 900, 999, 1000
)
for l in list:
print(l, numwords(l).numwords())
print("\ntime test:")
list = (
(0, 0), (0, 1), (11, 0), (12, 0), (13, 0), (12, 29), (12, 30),
(12, 31), (12, 15), (12, 30), (12, 45), (11, 59), (23, 15),
(23, 59), (12, 59), (13, 59), (1, 60), (24, 0)
)
for l in list:
print(saytime(*l).digits(), saytime(*l).words())
print("\nlocal time is " + saytime_t(time.localtime()).words())
if __name__ == "__main__": main()
#/usr/bin/python3
#比尔·温曼的saytime.py[http://bw.org/]
#为lynda.com上的Python 3基本培训创建
#版权所有2010熊心Gorup有限责任公司
导入系统
导入时间
__版本\=“1.1.0”
类numwords():
"""
以单词形式返回数字,
e、 g.42岁变成“四十二岁”
"""
_单词={
“一个”:(
“哦”,“一”,“二”,“三”,“四”,“五”,“六”,“七”,“八”,“九”
)“十”(
“‘十’、‘二十’、‘三十’、‘四十’、‘五十’、‘六十’、‘七十’、‘八十’、‘九十”
)“青少年”:(
“十”、“十一”、“十二”、“十三”、“十四”、“十五”、“十六”、“十七”、“十八”、“十九”
)“四分之一”:(
“点”、“刻”、“半”
)“范围”:{
‘百’:‘百’
}“杂项”:{
“减号”:“减号”
}
}
_oor=‘oor’#超出范围
定义初始化(self,n):
自身编号=n;
def numwords(self,num=None):
“以文字形式返回数字”
n=自身。如果num不是其他num,则为
s=“”
如果n<0:#负数
s+=self._单词['misc']['minus']+'
n=abs(n)
如果n<10:#个位数
s+=self._单词['one'][n]
elif n<20:#青少年
s+=self._单词['teens'][n-10]
elif n<100:#十
m=n%10
t=n//10
s+=self._单词['tens'][t]
如果m:s+='-'+numwords(m).numwords()#递归余数
elif n<1000:#数百
m=n%100
t=n//100
s+=self._单词['one'][t]+'''+self._单词['range']['hund']
如果m:s+=''+numwords(m).numwords()#递归余数
其他:
s+=自身
返回s
def编号(自身):
“将数字作为数字返回”
返回str(自身编号);
课堂发言时间(numwords):
"""
以文字形式返回时间(来自两个参数),
e、 十四点到中午,一点一刻等。
"""
_特色菜={
‘正午’:‘正午’,
‘午夜’:‘午夜’,
‘til’:‘til’,
‘过去’:‘过去’
}
定义初始值(self,h,m):
自整小时=abs(int(h))
自身最小值=abs(int(m))
def单词(self):
h=自身时间
m=自最小值
如果h>23:返回self.\u oor#oor错误
如果m>59:返回自我。\u oor
符号=自我。_特价商品[过去]
如果自最小值>30:
符号=self.\u特殊符号['til']
h+=1
m=60-m
如果h>23:h-=24
elif h>12:h-=12
#hword是小时数(单词)
如果h为0:hword=self.\u特价['midnight']
elif h是12:hword=self.\u特价['noon']
else:hword=self.numwords(h)
如果m为0:
如果h在(0,12):返回hword#的正午和午夜
else:返回“{}{}”。格式(self.numwords(h),self.\u单词['quarters'][m])
如果m%15为0:
返回“{{}{}”。格式(self._单词['quarters'][m//15],符号,hword)
返回“{}{}}”。格式(self.numwords(m)、符号、hword)
def数字(自身):
“返回传统时间,例如13:42”
返回“{:02}:{:02}”。格式(self.\u小时,self.\u分钟)
类saytime_t(saytime):#用于saytime使用time对象的包装器
"""
以文字形式返回时间(来自时间对象)
e、 十四点到中午
"""
定义初始化(self,t):
自身时间=t.tm时间
自。_min=t.tm_min
def main():
如果len(sys.argv)>1:
如果sys.argv[1]=“测试”:
测试()
其他:
尝试:打印(saytime(*(sys.argv[1].split(“:”)).words())
除TypeError外:打印(“无效时间({})”.format(sys.argv[1]))
其他:
打印(saytime\u t(time.localtime()).words())
def test():
打印(“\n数字测试:”)
列表=(
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 19, 20, 30,
50, 51, 52, 55, 59, 99, 100, 101, 112, 900, 999, 1000
)
对于列表中的l:
打印(l,numwords(l).numwords())
打印(“\n时间测试:”)
列表=(
(0, 0), (0, 1), (11, 0), (12, 0), (13, 0), (12, 29), (12, 30),
(12, 31), (12, 15), (12, 30), (12, 45), (11, 59), (23, 15),
(23, 59), (12, 59), (13, 59), (1, 60), (24, 0)
)
对于列表中的l:
打印(saytime(*l).digits(),saytime(*l).words())
打印(“\n本地时间为”+saytime\u t(time.localtime()).words())
如果uuuu name_uuuuuu==“uuuuuuu main_uuuuuuuu”:main()
那么如何解决这个问题呢?在PyDev中运行Python模块最简单的方法就是在关注编辑器时按F9键
《入门指南》有一章专门介绍了如何使用PyDev运行模块的更多提示:(理想情况下,您应该从一开始就遵循它:)如果PyDev的设置正确,您就可以使用
runas>Python Run
。蚂蚁赛跑是这里的死胡同。。。