小编dbr*_*dbr的帖子

重定向stdout时的UnicodeEncodeError

我在Python中遇到有关Unicode的问题.我可以在常规终端中打印输出正常,但如果我重定向stdout到其他地方(或用subprocess模块捕获它),我得到一个UnicodeEncodeError:

$ cat example.py 
print u'Example: \u00F1'
$ python example.py 
Example: ñ
$ python example.py > /dev/null
Traceback (most recent call last):
  File "example.py", line 1, in <module>
    print u'Example: \u00F1'
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf1' in position 9: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

为什么是这样?我该如何解决?

python unicode

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

是否可以在TextMate中实现Python代码完成?

PySmell似乎是一个很好的起点.

我认为它应该是可能的,PySmell会idehelper.py做大部分复杂的事情,它应该只是给它当前行,提供完成(我不确定的位)然后用选中的行替换行一.

>>> import idehelper
>>> # The path is where my PYSMELLTAGS file is located:
>>> PYSMELLDICT = idehelper.findPYSMELLDICT("/Users/dbr/Desktop/pysmell/")
>>> options = idehelper.detectCompletionType("", "" 1, 2, "", PYSMELLDICT)
>>> completions = idehelper.findCompletions("proc", PYSMELLDICT, options)
>>> print completions
[{'dup': '1', 'menu': 'pysmell.pysmell', 'kind': 'f', 'word': 'process', 'abbr': 'process(argList, excluded, output, verbose=False)'}]
Run Code Online (Sandbox Code Playgroud)

它永远不会是完美的,但它会非常有用(即使只是为了完成stdlib模块,它永远不会改变,所以你不必在每次添加函数时不断重新生成PYSMELLTAGS文件)


前进!我有完全基本的完成 - 几乎没有作品,但它很接近..

我跑了 python pysmells.py /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/*.py -O /Library/Python/2.5/site-packages/pysmell/PYSMELLTAGS

将以下内容放在TextMate包脚本中,设置"input:whole document","output:insert as text","activation:key equivalent:alt + esc","scope selector:source.python"

#!/usr/bin/env python

import os
import sys
from pysmell …
Run Code Online (Sandbox Code Playgroud)

python textmate autocomplete text-editor

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

将功能注入二进制文件的最佳方法

将功能插入二进制应用程序(3d方,闭源)的最佳方法是什么.

目标应用程序在OSX上,似乎是使用gcc 3+编译的.我可以看到二进制文件中实现的函数列表,并调试和隔离了一个我想远程调用的特定函数.

具体来说,zoomByFactor(x,y)当我从复杂的HIDevice接收某些数据时,我想调用这个函数 - 让它称之为void .

我可以轻松地将指令修改或注入二进制文件本身(即,修补不需要仅在RAM中进行).

作为一种"很好"的方式,你会推荐什么?

编辑:

我确实需要整个申请.所以我不能抛弃它并使用库.(对于那些需要道德解释的人:这是一个专有的CAD软件,其公司网站自2006年以来一直没有更新.我已经支付了这个产品(相当多的钱,实际上是什么)并且有项目我不能轻易从中迁移出来的数据.该产品很适合我,但我想使用我最近得到的新HID.我已经检查了应用程序的内部,我相当自信我可以用相关数据调用正确的函数并使其正常工作).

这是我到目前为止所做的,而且非常好.

我已经通过这个过程修改了部分应用程序:

xxd -g 0 binary > binary.hex
cat binary.hex | awk 'substitute work' > modified.hex
xxd -r modified.hex > newbinary
chmod 777 newbinary

我正在做这种跳过箍,因为二进制几乎是100兆大.

我想的是我在主应用程序循环中的某个地方jmp,启动一个线程,然后返回main函数.

现在,问题是:我在哪里可以插入新代码?我需要修改符号表吗?或者,我怎样才能自动加载dylib,以便我需要做的唯一"黑客攻击"是将对正常加载的dylib的调用插入到main函数中?

macos reverse-engineering code-injection

20
推荐指数
2
解决办法
7775
查看次数

Python有什么"很好编程"的GUI工具包吗?

我玩过GTK,TK,wxPython,Cocoa,curses等等.它们使用起来相当可怕.. GTK/TK/wx/curses似乎基本上都是相应C库的直接端口,而Cocoa基本上要求使用PyObjC和Interface Builder,我不喜欢这两个.

Ruby的Shoes GUI库很棒..它的设计非常合理,而且非常"红宝石",并且从Web开发中借用了一些很好用的东西(比如使用十六进制颜色代码,或者:color => rgb(128,0,0))

正如标题所说:有没有漂亮的"Pythonic"GUI工具包?

python user-interface

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

是否有用于检查针对不同操作系统的开源应用程序的服务器场?

我有一个开源应用程序,我在Windows,Linux和Macintosh上工作(它是用C++编写的,用gcc构建).我只在几种不同版本的Linux上测试它,所以我不知道它是否编译并运行在所有不同的Linux版本上.有没有一个地方我可以上传我的代码,并在其他Linux系统和Solaris,FreeBSD等操作系统之类的不同系统上进行测试?

如果我可以直接连接到我的svn存储库并获取最新的代码,然后通过电子邮件发回给我生成的任何编译错误以及操作系统是否存在问题,那将是多么美妙的事情.

我很高兴知道它编译,因为它是一个基于GUI的应用程序,所以我不希望它实际上运行和测试.

c++ operating-system build

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

为什么属性引用与Python继承一样?

以下看起来很奇怪..基本上,somedata属性似乎在所有继承的类之间共享the_base_class.

class the_base_class:
    somedata = {}
    somedata['was_false_in_base'] = False


class subclassthing(the_base_class):
    def __init__(self):
            print self.somedata


first = subclassthing()
{'was_false_in_base': False}
first.somedata['was_false_in_base'] = True
second = subclassthing()
{'was_false_in_base': True}
>>> del first
>>> del second
>>> third = subclassthing()
{'was_false_in_base': True}
Run Code Online (Sandbox Code Playgroud)

self.somedata__init__函数中定义显然是解决这个问题的正确方法(所以每个类都有它自己的somedatadict) - 但什么时候这种行为是可取的?

python inheritance class

19
推荐指数
2
解决办法
7805
查看次数

创建.DMG

我想为我的Mac项目创建一个dmg文件.有人可以告诉我该怎么做?这是我的第一个Mac项目,我不知道如何继续.我还希望为用户提供在启动时运行应用程序的选项.我该怎么做呢?

谢谢.

PS我还想添加自定义许可协议.

macos dmg

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

Python表达式文档中的"切片"

我不理解Python文档的以下部分:

http://docs.python.org/reference/expressions.html#slicings

这是指列表切片(x=[1,2,3,4]; x[0:2])..?特别是涉及省略号的部分..

slice_item       ::=  expression | proper_slice | ellipsis
Run Code Online (Sandbox Code Playgroud)

作为表达式的切片项的转换是该表达式.省略号切片项的转换是内置的省略号对象.

python syntax

19
推荐指数
3
解决办法
8492
查看次数

有没有类似TypeMock的开源模拟框架?

TypeMock对于像我这样的爱好者来说太贵了:)

Moq或下一版RhinoMocks没有计划收听分析API,为什么会这样?

编辑:这启用以下功能:

  • 模拟非虚方法和属性(!).
  • 模拟浏览器环境.
  • 更简单的语法,不易碎(并且不必通过模拟对象).
  • 模拟静态方法有时很有用(主要是在遗留场景中,涉及可怕的DateTime.Now).
  • 还有更多 ......

.net tdd unit-testing rhino-mocks moq

19
推荐指数
3
解决办法
2425
查看次数

什么和休息在elisp中意味着什么?

&rest意味着什么:(append &rest sequences)

我已经完成了"elisp_intro"一书,但我找不到答案.如果你能帮助我,我将非常感激.

lisp emacs elisp

19
推荐指数
2
解决办法
3040
查看次数