我在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)
为什么是这样?我该如何解决?
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) 将功能插入二进制应用程序(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函数中?
我玩过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工具包?
我有一个开源应用程序,我在Windows,Linux和Macintosh上工作(它是用C++编写的,用gcc构建).我只在几种不同版本的Linux上测试它,所以我不知道它是否编译并运行在所有不同的Linux版本上.有没有一个地方我可以上传我的代码,并在其他Linux系统和Solaris,FreeBSD等操作系统之类的不同系统上进行测试?
如果我可以直接连接到我的svn存储库并获取最新的代码,然后通过电子邮件发回给我生成的任何编译错误以及操作系统是否存在问题,那将是多么美妙的事情.
我很高兴知道它编译,因为它是一个基于GUI的应用程序,所以我不希望它实际上运行和测试.
以下看起来很奇怪..基本上,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) - 但什么时候这种行为是可取的?
我想为我的Mac项目创建一个dmg文件.有人可以告诉我该怎么做?这是我的第一个Mac项目,我不知道如何继续.我还希望为用户提供在启动时运行应用程序的选项.我该怎么做呢?
谢谢.
PS我还想添加自定义许可协议.
我不理解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)
作为表达式的切片项的转换是该表达式.省略号切片项的转换是内置的省略号对象.
TypeMock对于像我这样的爱好者来说太贵了:)
Moq或下一版RhinoMocks没有计划收听分析API,为什么会这样?
编辑:这启用以下功能:
这&rest意味着什么:(append &rest sequences)
我已经完成了"elisp_intro"一书,但我找不到答案.如果你能帮助我,我将非常感激.
python ×5
macos ×2
.net ×1
autocomplete ×1
build ×1
c++ ×1
class ×1
dmg ×1
elisp ×1
emacs ×1
inheritance ×1
lisp ×1
moq ×1
rhino-mocks ×1
syntax ×1
tdd ×1
text-editor ×1
textmate ×1
unicode ×1
unit-testing ×1