小编ore*_*tis的帖子

如何将安装后脚本添加到easy_install/setuptools/distutils?

我希望能够在我的setup.py中添加一个钩子,它将在安装后运行(当easy_install'ing或者在进行python setup.py安装时).

在我的项目PySmell中,我有一些Vim和Emacs的支持文件.当用户以通常的方式安装PySmell时,这些文件将被复制到实际的egg中,并且用户必须将它们删除并将它们放在他的.vim或.emacs目录中.我想要的是询问用户,安装后,他希望复制这些文件的位置,甚至只是打印文件位置的消息以及他应该如何处理它们.

做这个的最好方式是什么?

谢谢

我的setup.py看起来像这样:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
from setuptools import setup

version = __import__('pysmell.pysmell').pysmell.__version__

setup(
    name='pysmell',
    version = version,
    description = 'An autocompletion library for Python',
    author = 'Orestis Markou',
    author_email = 'orestis@orestis.gr',
    packages = ['pysmell'],
    entry_points = {
        'console_scripts': [ 'pysmell = pysmell.pysmell:main' ]
    },
    data_files = [
        ('vim', ['pysmell.vim']),
        ('emacs', ['pysmell.el']),
    ],
    include_package_data = True,
    keywords = 'vim autocomplete',
    url = 'http://code.google.com/p/pysmell',
    long_description =
"""\
PySmell is a python IDE …
Run Code Online (Sandbox Code Playgroud)

python distutils setuptools

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

在CGContext中绘制NSAttributedString时看起来很难看

我想显示内部CoreAnimation层字符串,但不幸的是CATextLayer是不够的,主要是因为它很难使用约束时使用,并要自动换行.

我正在使用NSLayoutManager,使用以下代码(PyObjC):

NSGraphicsContext.saveGraphicsState()

# THIS SOLVES THIS ISSUE
CGContextSetShouldSmoothFonts(ctx, False)

graphics = NSGraphicsContext.graphicsContextWithGraphicsPort_flipped_(ctx, True)
NSGraphicsContext.setCurrentContext_(graphics)

height = size.height
xform = NSAffineTransform.transform();
xform.translateXBy_yBy_(0.0, height)
xform.scaleXBy_yBy_(1.0, -1.0)
xform.concat()

self.textContainer.setContainerSize_(size)

glyphRange = self.layoutManager.glyphRangeForTextContainer_(self.textContainer)

self.layoutManager.drawBackgroundForGlyphRange_atPoint_(glyphRange, topLeft)
self.layoutManager.drawGlyphsForGlyphRange_atPoint_(glyphRange, topLeft)

NSGraphicsContext.restoreGraphicsState()
Run Code Online (Sandbox Code Playgroud)

这一切都很好并且有效,但唯一的问题是它会产生看起来很糟糕的文本(虽然它防腐蚀的).

这是CATextLayer版本:http://i39.tinypic.com/23h0h1d.png

这是NSLayoutManager版本:http://i40.tinypic.com/2vv9rw5.png

我缺少什么?

cocoa text pyobjc core-animation

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

组织GUI应用程序

这将是一个普遍的问题.

我正在努力设计GUI应用程序,尤其是.处理不同部分之间的相互作用.

我不知道应该如何处理共享状态.一方面,共享状态很糟糕,事情应该尽可能明确.另一方面,没有共享状态会在组件之间引入不需要的耦合.

一个例子:

我希望我的应用程序可以通过脚本以Emacs/Vim的方式扩展.显然,需要修改某种共享状态,以便GUI使用它.我最初的计划是有一个可以从任何地方访问的全球"会话",但我不太确定.

一个棘手的用例是键绑定.我希望用户能够从脚本中指定自定义键绑定.每个键绑定映射到一个任意命令,该命令接收会话作为唯一参数.

现在,编辑器组件捕获了按键.它必须能够访问每个会话的键映射,因此需要访问会话.将编辑器与会话结合起来是一个好主意吗?其他组件也需要访问键绑定,因此会话现在变为共享,可以是单个...

关于设计超出MVC的GUI应用程序有什么好的阅读吗?

这是Python和wxPython,FWIW.

[编辑]:添加了具体的用例.

python architecture model-view-controller user-interface wxpython

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