小编Gly*_*yph的帖子

POSIX异步I/O(AIO)的状态是什么?

网页上散布着各种描述POSIX AIO设施的页面,其中包含不同的细节.它们都不是最近的.目前还不清楚他们究竟在描述什么.例如,Linux内核异步I/O支持的"官方"(?)网站说套接字不起作用,但我的Ubuntu 8.04.1工作站上的"aio.h"手册页似乎都暗示它适用于任意文件描述符.然后还有另一个项目似乎在图书馆层工作,文档更少.

我想知道:

  • POSIX AIO的目的是什么?鉴于我能找到的最明显的实现示例说它不支持套接字,整个事情对我来说似乎很奇怪.它只适用于异步磁盘I/O吗?如果是这样,为什么超通用API?如果没有,为什么磁盘I/O首先受到攻击?
  • 哪些示例完整的 POSIX AIO程序我可以看一下?
  • 有没有人真正使用它,真的吗?
  • 哪些平台支持POSIX AIO?他们支持哪些部分?有没有人真的支持隐含的"对任何FD的任何I/O" <aio.h>似乎有希望?

我可以使用的其他多路复用机制非常好,但随处可见的信息碎片让我很好奇.

linux bsd posix asynchronous aio

92
推荐指数
3
解决办法
2万
查看次数

如何将两个整数与Twisted一起添加?

我的程序中有两个整数; 让我们称他们为" a"和" b".我想将它们加在一起,结果得到另一个整数.这些是常规的Python int对象.我在想; 如何将它们与Twisted一起添加?performAsynchronousAddition某处有特殊功能吗?我需要一个Deferred吗?反应堆怎么样?是否涉及反应堆?

python asynchronous arithmetic-expressions twisted addition

47
推荐指数
2
解决办法
4645
查看次数

如何从ActionScript 3中的类实例获取Class对象?

如何Class从该类的实例中获取actionscript类的实例?

在Python中,这将是x.__class__; 在Java中x.getClass();.

我知道有一些可怕的黑客可以做到这一点,但我正在寻找一个内置的语言设施,或者至少建立在可靠的基础上的库例程.

apache-flex flash actionscript actionscript-3

45
推荐指数
3
解决办法
2万
查看次数

如何编写一个setup.py用于与setuptools,分发等一起使用的扭曲/扭曲插件?

所述扭曲扩展系统 是写扩展的扭曲应用的首选方式.

但是,由于插件系统的结构方式(插件进入一个应该是Python包的twisted/plugins目录),编写适当的setup.py来安装这些插件似乎并非易事.

我已经看到一些尝试将'twisted.plugins'添加到distutils setup命令的'packages'键,但由于它不是真正的包,所以会发生不好的事情(例如,__init__.py某些工具有助于添加).

其他尝试似乎使用'package_data'(例如,http://bazaar.launchpad.net/~glyph/divmod.org/trunk/view/head: /Epsilon/epsilon/setuphelper.py),但这也可能失败以奇怪的方式.

问题是:有没有人成功编写过setup.py来安装扭曲的插件,它适用于所有情况?

python distutils twisted setuptools distribute

26
推荐指数
2
解决办法
5118
查看次数

如何在Windows,Linux和MacOS中确定Python的显示空闲时间?

我想知道自用户上次按键或移动鼠标以来已经有多长时间 - 不仅在我的应用程序中,而且在整个"计算机"(即显示器)上,以便猜测它们是否仍在电脑,能够观察屏幕上弹出的通知.

我想纯粹从(Py)GTK +这样做,但我可以调用特定于平台的函数.理想情况下,我想调用已经包含在Python中的函数,但是如果不可能的话,我不会超过一点C或ctypes代码,只要我知道我实际上在寻找什么.

在Windows上我认为我想要的功能是GetLastInputInfo,但这似乎并没有被pywin32包装; 我希望我错过了一些东西.

python gtk winapi pygtk pywin32

15
推荐指数
2
解决办法
3595
查看次数

安装Twisted for Python时出错

我尝试在Ubuntu VM上安装twis​​ted如下:

pip安装扭曲

它下载并开始安装,但出现此错误:

Command "/usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-SQhfJz/twisted/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-ItHrMV-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-SQhfJz/twisted
Run Code Online (Sandbox Code Playgroud)

我不是一个真正的程序员,只是一个业余爱好者,所以这是我的头脑.谷歌搜索它表明它需要python-dev和build-essential.我安装了这两个,但安装twis​​ted仍然得到了与以前相同的错误.

有什么想法吗?

python twisted failed-installation

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

当单个约束失败时,如何告诉PostgreSQL不要中止整个事务?

只要任何SQL语句因错误而终止,Postgres就会自动中止事务,其中包括任何约束违规.例如:

glyph=# create table foo (bar integer, constraint blug check(bar > 5));
CREATE TABLE
glyph=# begin;
BEGIN
glyph=# insert into foo values (10);
INSERT 0 1
glyph=# insert into foo values (1);
ERROR:  new row for relation "foo" violates check constraint "blug"
STATEMENT:  insert into foo values (1);
ERROR:  new row for relation "foo" violates check constraint "blug"
Run Code Online (Sandbox Code Playgroud)

尚未发出任何消息,但事务已回滚.我个人最喜欢的会议内容如下:

glyph=# commit;
ROLLBACK
Run Code Online (Sandbox Code Playgroud)

...因为" ROLLBACK"似乎是一个奇怪的成功 -消息COMMIT.但实际上,它已被回滚,表中没有行:

glyph=# select * from foo;
 bar 
-----
(0 rows)
Run Code Online (Sandbox Code Playgroud)

我知道我可以创建大量的 …

postgresql

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

twisted.internet.error.CannotListenError:听不到任何:80:[Errno 13]权限被拒绝

我目前正在开发一个在mac os mountain lion上创建TCP服务器的项目.我写了一个名为Server.py的脚本

在这个python脚本中,我使用twisted来侦听端口80,如下所示:

reactor.listenTCP(80, factory)
reactor.run()
Run Code Online (Sandbox Code Playgroud)

我怎么会这样得到错误:

File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/twisted/internet/posixbase.py", line 436, in listenTCP
    p.startListening()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/twisted/internet/tcp.py", line 641, in startListening
    raise CannotListenError, (self.interface, self.port, le)
twisted.internet.error.CannotListenError: Couldn't listen on any:80: [Errno 13] Permission denied.
Run Code Online (Sandbox Code Playgroud)

我在想是因为tcp.py脚本对admin用户有错误的权限?或者有没有办法设置端口<1024的权限?(要更改权限,它将如何影响此类服务器的安全性?)

任何更好的解决方案都是适用的.

macos tcp twisted

11
推荐指数
3
解决办法
6907
查看次数

是否有一个API来预检索Windows上受信任的根证书列表?

我使用Python和OpenSSL使用TLS连接到一个站点(在一些跨平台的软件中,所以切换到CryptoAPI的工作量太大了); 但是,我不想分发(和更新)自定义证书列表.我想从平台上获取它们.在OS X和Linux上,这是相当简单的,但Windows附带了一个不完整的TLS可信根证书颁发机构列表; 基本上只是微软自己的证书,然后当高级TLS内容(例如通过HTTPS在Internet Explorer中加载网页)必须验证以前没有看到的信任根时,动态地将信任根添加到商店. (此过程在此处进行了解释.) 这意味着我可以枚举Windows根证书存储区wincertstore,但它没用,因为在最近安装了较新操作系统的计算机上,该存储区几乎为空.

Microsoft 为管理员提供详细说明,以便预先检索此列表,以便能够操作具有严格控制的网络访问权限的计算机; 但是,我找不到任何可以执行相同操作的API的引用,只需从Microsoft下载所有受信任的根证书.(老实说,在每周多兆字节系统更新的时代,我不明白为什么预先下载这些是如此重要,如果它只是一个缓存;对于奖励积分,请解释为什么这需要发生.)

那么:是否有一个API允许我告诉系统根据它使用的任何规则预先缓存受信任的根证书?如果失败了,如果真的不可能(例如,如果CryptoAPI一次只能下载一个信任根,并且只有当你提供由该根签名的证书),是否有办法将OpenSSL证书验证连接到CryptoAPI的信任存储区,以便验证将下载和缓存信任根,就像本机TLS连接一样?

windows ssl cryptoapi

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

如何在不编辑Sublime Text的语法定义中添加功能?

例如,我想在我的Python文档字符串中突出显示@param,@type@return(即epytext声明).我已经想出了如何通过简单的编辑来做到这一点Python/Python.tmLanguage; 但是,由于以下几个原因,我真的想把它放在自己的文件中:

  1. 我并不总是想要应用这个突出显示.它仅适用于使用epydoc作为文档工具的项目; 在其他项目中,我想要突出显示reStructuredText.
  2. 当Sublime Text更新时,我希望将自己的语法作为覆盖功能的叠加.Sublime的作者可能会选择在未来版本中包含Python的几个功能,而且我不想在每次更新修改基本Python语法定义时手动找出我更改的内容.
  3. 我在编辑控件中保留了自己的编辑器配置,但我希望它是我自己的原始内容; 我不想承担Sublime附带的语法定义副本(可能是专有的?我不知道,它似乎没有独立的许可证).

有没有办法将突出显示规则放入单独的文件中,也许只能应用于特定范围?

syntax-highlighting sublimetext2

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