Windows上运行不了eurasia 3.0.0a6

4 views
Skip to first unread message

keakon

unread,
Apr 4, 2009, 5:04:46 AM4/4/09
to eurasia-users
看文档说明,Windows也能跑,只是性能不及UNIX。

eurasia 基于 python2.5。一般来说, 支持 python2.5 的计算机平台都能够运行 eurasia。
需要注意的是, eurasia 在 windows 上不能达到 eurasia 在 unix/linux 上的并发性能。

于是装了Python2.5.2 stackless,运行文档的第一个程序,结果如下:
C:\Documents and Settings\keakon>python "C:\Documents and Settings
\keakon\桌面\
hello.py"
Traceback (most recent call last):
File "C:\Documents and Settings\keakon\桌面\hello.py", line 7, in
<module>
config(handler=handler, port=8080)
File "e:\python25 stackless\lib\site-packages\eurasia-3.0.0a6-
py2.5.egg\eurasi
a\__init__.py", line 28, in config
import web
File "e:\python25 stackless\lib\site-packages\eurasia-3.0.0a6-
py2.5.egg\eurasi
a\web.py", line 2, in <module>
from socket2 import mainloop0, mainloop, SSL, Disconnect,
SocketFile, \
File "e:\python25 stackless\lib\site-packages\eurasia-3.0.0a6-
py2.5.egg\eurasi
a\socket2.py", line 9, in <module>
from _socket import fromfd, socket as Socket, error as
SocketError, \
ImportError: cannot import name fromfd

查了下Python文档,fromfd只在UNIX下有效。

不知道能否给个Windows版,我只是想比较下HTTP长链接和AJAX的效率而已,其他性能并不关心…

沈崴

unread,
Apr 4, 2009, 8:06:30 AM4/4/09
to eurasia-users
> 不知道能否给个Windows版,我只是想比较下HTTP长链接和AJAX的效率而已,其他性能并不关心...

这个问题在老一些的版本中存在, 现在已经消除了。列表中前面的帖子有相关说明。
你可以重新下载较新的版本:
http://eurasia.googlecode.com/files/Eurasia-3.0.0a6-snapshot.tar.bz2
或者使用 svn:
svn checkout https://eurasia.googlecode.com/svn/trunk Eurasia

在安装之前, 请完全删除旧版的 eurasia a6, 或者用新版的 src/eurasia 库目录替换掉
site-package 中的 eurasia 目录。

keakon

unread,
Apr 4, 2009, 10:17:32 AM4/4/09
to eurasia-users
汗,6比6.2的版本更新...

总算跑起hello world了,不过长连接没效果

开了1个IE,1个Chrome,全是空白,连"我加入啦!"都没显示...

只在调用current_httpfile.close()时才显示出来...

沈崴

unread,
Apr 4, 2009, 8:16:32 PM4/4/09
to eurasia-users
On Apr 4, 10:17 pm, keakon <kea...@gmail.com> wrote:
> 汗,6比6.2的版本更新...

你说得对, 我这就改成 Eurasia-3.0.0a6.2-snapshot !

> 总算跑起hello world了,不过长连接没效果
> 开了1个IE,1个Chrome,全是空白,连"我加入啦!"都没显示...
> 只在调用current_httpfile.close()时才显示出来...

这个前两天的帖子有讨论:
http://groups.google.com/group/eurasia-users/browse_thread/thread/93c96a2f2c69dde

风笑雪

unread,
Apr 4, 2009, 11:28:04 PM4/4/09
to eurasi...@googlegroups.com
谢谢,已经解决

我在输出第1句话后加了个'\0' * 1024,于是OK了,照你说的用current_httpfile.wbegin('\0'*1024)也是可以的。
在测试javascript rpc时,如果使用document.write,仍会碰到这个1kb的问题。不过研究了一下,实际上并不需要输出这些多余的字符,只要用innerHTML改变DOM,就能让浏览器立即输出了。
但是Chrome下每次都需要改变DOM,而IE只需要createElement创建一个不显示的DOM,就能直接document.write了。
把下面这段放在body中即可搞定IE:

<script type="text/javascript">
//<![CDATA[
(function () {
  var d = document;
  var e = d.createElement("div");
  e.style.display = "none";
  d.body.appendChild(e);
})();
//]]>
</script>

似乎还有必要屏蔽ESC键,不然长连接会被关闭…

此外,这个感觉是这个进程一直在监听端口,有请求时就响应。在一个长连接关闭前,是否一直算入响应时间里呢。因为不少主机对响应时间做了30秒的限制,可能只能用自己的电脑玩了~

最后就是我的CPU是双核的,我设定了mainloop(cpus=2),并没使用进程间通信,仍然可以共享全局变量~

2009/4/5 沈崴 <wile...@gmail.com>

沈崴

unread,
Apr 5, 2009, 1:01:03 AM4/5/09
to eurasia-users
On Apr 5, 11:28 am, 风笑雪 <kea...@gmail.com> wrote:
> 谢谢,已经解决
> 我在输出第1句话后加了个'\0' * 1024,于是OK了,照你说的用current_httpfile.wbegin('\0'*1024)也是可以的。
> 在测试javascript
> rpc时,如果使用document.write,仍会碰到这个1kb的问题。不过研究了一下,实际上并不需要输出这些多余的字符,只要用innerHTML改变DOM,就能让浏览器立即输出了。
> 但是Chrome下每次都需要改变DOM,而IE只需要createElement创建一个不显示的DOM,就能直接document.write了。
> 把下面这段放在body中即可搞定IE:
>
> <script type="text/javascript">
> //<![CDATA[
> (function () {
> var d = document;
> var e = d.createElement("div");
> e.style.display = "none";
> d.body.appendChild(e);})();
>
> //]]>
> </script>
>
> 似乎还有必要屏蔽ESC键,不然长连接会被关闭...

很有用的分享!

> 此外,这个感觉是这个进程一直在监听端口,有请求时就响应。在一个长连接关闭前,是否一直算入响应时间里呢。因为不少主机对响应时间做了30秒的限制,可能只能用自己的电脑玩了~

是的, 如果不是自己的主机限制会比较多, 尤其是对长连接程序。
这也是一个历史遗留问题了, 现在还是短连接的时代, 主机商基本无视长连接应用, 甚至支持 python 的都很少。

不过好消息是 eurasia 可以跑在嵌入式硬件上, 在廉价硬件上提供逼近 php 的性能体验,
这意味着 200¥左右我们就可以拥有自己的主机, 运行不受限制的长连接性能。
这是我的一篇相关文章:
http://eishn.blog.163.com/blog/static/65231820083995420860/

> 最后就是我的CPU是双核的,我设定了mainloop(cpus=2),并没使用进程间通信,仍然可以共享全局变量~

windows 不支持 fork, 所以我在 windows 下禁用了多进程。

> 2009/4/5 沈崴 <wilei...@gmail.com>


>
> > On Apr 4, 10:17 pm, keakon <kea...@gmail.com> wrote:
> > > 汗,6比6.2的版本更新...
>
> > 你说得对, 我这就改成 Eurasia-3.0.0a6.2-snapshot !
>
> > > 总算跑起hello world了,不过长连接没效果
> > > 开了1个IE,1个Chrome,全是空白,连"我加入啦!"都没显示...
> > > 只在调用current_httpfile.close()时才显示出来...
>
> > 这个前两天的帖子有讨论:
>

> >http://groups.google.com/group/eurasia-users/browse_thread/thread/93c...

风笑雪

unread,
Apr 5, 2009, 4:14:22 AM4/5/09
to eurasi...@googlegroups.com
完全不知道路由器可以外接硬盘,还能telnet…

我试了下自己的破路由器,连80端口什么都不显示,随便按键就出现501错误~

有空我也去买个玩玩。不过UNIX下有什么好的动态域名软件么,毕竟现在都是ADSL

2009/4/5 沈崴 <wile...@gmail.com>

沈崴

unread,
Apr 5, 2009, 6:20:34 AM4/5/09
to eurasia-users
On Apr 5, 4:14 pm, 风笑雪 <kea...@gmail.com> wrote:
> 完全不知道路由器可以外接硬盘,还能telnet...

> 我试了下自己的破路由器,连80端口什么都不显示,随便按键就出现501错误~
>
> 有空我也去买个玩玩。不过UNIX下有什么好的动态域名软件么,毕竟现在都是ADSL

www.3322.org 很好。而国外注册的域名都有接口, 可以自己写个程序来动态绑定。

Reply all
Reply to author
Forward
0 new messages