标签: pys60

有没有人有PyS60移动开发的经验

我不得不在针对移动电话的项目中尽早做出技术选择.我看到有一个针对S60的python衍生产品,并想知道是否有人可以分享经验,好的和坏的,并建议适当的IDE和模拟器.

请不要告诉我,我应该在Windows Mobile上开发,我已经决定不这样做,所以会将这些答案标记下来.

python mobile pys60

10
推荐指数
1
解决办法
1588
查看次数

PyS60是否生成本机的sis文件?

我目前正在为S60平台开发移动应用程序,并专门研究PyS60.它似乎表明它可以编译成本机.sis文件而无需嵌入式python解释器.通过阅读文档,我找不到任何明确提到的陈述.虽然我现在正在下载SDK,模拟器以及在Linux上测试开发所需的一大堆工具链,但我想我会在这里问一下.

python symbian s60 pys60

9
推荐指数
2
解决办法
1102
查看次数

移动开发进入门槛

我正在考虑在业余时间制作一些移动应用程序,我希望能够将它们放在网上供任何人使用(可能是开源的).我刚刚和PyS60合作过,我真的很喜欢它.

我的问题是,我不想在这些应用程序上花钱(我不打算以任何方式从他们那里赚钱)而且我要正确分发PyS60应用程序,看起来我需要购买昂贵的发行商许可证,然后每次我想要一个应用程序签名仍然支付.我知道我可以分发脚本,但这需要最终用户下载pys60解释器......

我也很乐意看到其他语言/平台.iPhone应用程序需要一个开发许可证,我需要一个Mac来编译代码(我没有,我是一个Linux x86用户).

J2ME应用程序似乎需要"Java Verified"才能进入OVI商店.我认为它们是否通过其他方式分发?

基本上我正在寻找可以在我的手机上运行的应用程序(N95),如果其他人看到它,我可以说从www.example.com/myapp获取它就可以了.我也有兴趣使用像OVI商店这样的东西来分发它.但我不想花大钱.

任何人对此事有任何经验或知识吗?J2ME是我唯一的选择吗?

mobile android n95 pys60 java-me

8
推荐指数
1
解决办法
398
查看次数

使用urrlib2时如何解决Python内存泄漏问题?

我正在尝试为我的手机编写一个简单的Python脚本,以便使用urrlib2定期加载网页.实际上我并不关心服务器响应,我只想将URL中的一些值传递给PHP.问题是Python for S60使用旧的2.5.4 Python核心,它似乎在urrlib2模块中有内存泄漏.正如我所读到的,在每种类型的网络通信中似乎都存在这样的问题.此错误已在此处报告几年前,虽然也发布了一些解决方法.我已尝试在该页面上找到的所有内容,并且在Google的帮助下,但在加载约70页后,我的手机仍然耗尽内存.奇怪的是,Garbege Collector似乎也没有任何区别,只是让我的脚本慢得多.据说,较新的(3.1)核心解决了这个问题,但遗憾的是我不能等待一年(或更长时间)来实现S60端口.

这是我添加的每一个小技巧后我的脚本的样子:


import urrlib2, httplib, gc
while(true):
 url = "http://something.com/foo.php?parameter=" + value 
 f = urllib2.urlopen(url)
 f.read(1)
 f.fp._sock.recv=None # hacky avoidance
 f.close()
 del f
 gc.collect()
任何建议,如何让它永远工作而不会得到"无法分配内存"的错误?感谢前进,欢呼,b_m

更新: 我已经设法在内存不足之前连接92次,但它仍然不够好.

update2: 尝试前面建议的套接字方法,这是迄今为止第二个最好的(错误的)解决方案:


class UpdateSocketThread(threading.Thread):
  def run(self):
  global data
  while 1:
  url = "/foo.php?parameter=%d"%data
  s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  s.connect(('something.com', 80))
  s.send('GET '+url+' HTTP/1.0\r\n\r\n')
  s.close()
  sleep(1)
我从上面尝试了一些小技巧.大约50个上传后线程关闭(手机剩下50MB内存,显然Python shell没有.)

更新:我想我越来越接近解决方案了!我尝试发送多个数据而不关闭并重新打开套接字.这可能是关键,因为此方法只会留下一个打开的文件描述符.问题是:


import socket
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.connect(("something.com", 80))
socket.send("test") #returns 4 (sent bytes, which is cool)
socket.send("test") #4
socket.send("test") #4 …
Run Code Online (Sandbox Code Playgroud)

python memory-leaks urllib2 s60 pys60

8
推荐指数
1
解决办法
3654
查看次数

用urllib2.urlopen()正确打开关闭文件

我在python脚本中有以下代码

  try:
    # send the query request
    sf = urllib2.urlopen(search_query)
    search_soup = BeautifulSoup.BeautifulStoneSoup(sf.read())
    sf.close()
  except Exception, err:
    print("Couldn't get programme information.")
    print(str(err))
    return
Run Code Online (Sandbox Code Playgroud)

我很担心,因为如果我遇到错误sf.read(),那么sf.clsoe()就不会被调用.我尝试放入sf.close()一个finally块,但是如果有一个异常,urlopen()则没有文件要关闭,我在finally块中遇到异常!

所以我试过了

  try:
    with urllib2.urlopen(search_query) as sf:
      search_soup = BeautifulSoup.BeautifulStoneSoup(sf.read())
  except Exception, err:
    print("Couldn't get programme information.")
    print(str(err))
    return
Run Code Online (Sandbox Code Playgroud)

但这会with...在行上引发无效的语法错误.我怎么能最好地处理这个问题,我觉得很蠢!

正如评论者指出的那样,我使用的是Pys60,它是python 2.5.4

python exception-handling urllib2 pys60

7
推荐指数
3
解决办法
1万
查看次数

非阻塞python套接字

我想在PyS60中为我的诺基亚手机写一个小型蓝牙服务器应用程序.它需要能够发送对客户端请求的响应,并能够将数据推送到客户端.

选项1:如果我使用socket.recv(1024),程序会等到收到某些内容,因此服务器无法将数据推送到客户端.用于S60实现的Python缺少该socket.settimeout()方法,因此我无法编写正确的非阻塞代码.

oprion 2:socket.makefile()方法看起来不错,但无法使其发挥作用.当我更换为conn.recv(1024)to时fd = socket.makefile() fd.readline(),它没有读到任何东西.

选项3:查看select()函数,但没有运气.当我改变了conn.recv()r,w,e = select.select([conn],[],[])像它已经建议客户甚至不连接.它挂在"等待客户......".奇怪...

我知道有很好的服务器实现和异步API-s,但我只需要一个非常基本的东西.提前致谢!

这就是我所拥有的:

sock = btsocket.socket(btsocket.AF_BT, btsocket.SOCK_STREAM)
channel = btsocket.bt_rfcomm_get_available_server_channel(sock)
sock.bind(("", channel))                                     
sock.listen(1)
btsocket.bt_advertise_service(u"name", sock, True, btsocket.RFCOMM)

print "Waiting for the client..."                                     
conn, client_mac = sock.accept()
print "connected: " + client_mac

while True:
    try:
        data = conn.recv(1024)
        if len(data) != 0:
           print "received [%s]" % data
           if data.startswith("something"): conn.send("something\r\n")
        else:
           conn.send("some other …
Run Code Online (Sandbox Code Playgroud)

python sockets pys60

7
推荐指数
1
解决办法
9129
查看次数

Symbian上的Google Data API

我想在带有pys60的Symbian设备上使用Google Data API,但我找不到任何文档.有没有办法在Symbian上安装Google Data API Python客户端库?

python symbian pys60 google-data-api

6
推荐指数
1
解决办法
268
查看次数

应用程序要求互联网连接

当我启动任何应用程序时,我使用python为我的诺基亚5800(软件版本60.0.003)编写,它要求我连接互联网.应用程序不使用它或需要它.如果我跳过它,应用程序工作正常.

我正在使用带有Python 2.5.2的ensymble(PyS60应用程序打包器2.0.0)来创建应用程序,并在诺基亚手机上使用python版本2.0.0.

我试图只放"--caps ="或"--caps = ReadUserData"来检查是否会删除它,但它仍然要求访问点.即使是简单的应用程序:

print "Hello world!"
Run Code Online (Sandbox Code Playgroud)

有人知道我怎么能删除它?

谢谢.

python symbian nokia pys60

6
推荐指数
1
解决办法
345
查看次数

计数过了几秒钟

我们如何计算从当天0.00开始以来经过的秒数?是否有模块功能或我们必须自己做?

python pys60

1
推荐指数
1
解决办法
1万
查看次数