Wang Xuerui | 27 Aug 09:32 2014
Picon

Re: [CPyUG]关于python中在调用C包装程序出现断错时该如何处理

在 2014年8月27日 下午2:48,风间星魂 <fengjianxinghun <at> gmail.com> 写道:
> 不想改c只能多进程了。。。挂掉了在起回来。。

同意, 这种情况建议直接上任务队列, Celery+Redis什么的,
关掉他那个early_ack选项 (应该是叫这个名字)
这样万一worker挂了这边收不到结果会自动重试, worker也是自动重启, 拿supervisor什么的管理下整个部署就行了

-- 
--

-- 
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: python-cn <at> googlegroups.com
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
--- 
您收到此邮件是因为您订阅了 Google
网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到python-cn+unsubscribe <at> googlegroups.com。
要在网络上查看此讨论,请访问 https://groups.google.com/d/msgid/python-cn/CABK5mSaa7yU1VCyu0u4VLjtf%3DWG1167idW0phFupqYjpaHVtGQ%40mail.gmail.com。
要查看更多选项,请访问 https://groups.google.com/d/optout。
Adam | 27 Aug 08:26 2014
Picon

[CPyUG] [OT]ifanr科技寻找Python 高级开发工程师/Team Lead/技术负责人

ifanr科技(www.ifanr.com)正在开发自己的产品
现在招聘Python 高级开发工程师/Team Lead/技术负责人

职责以及责任 
引导应用开发组方向,保证项目成功 
为开发组成员提供技术指导以及培训 
保持软件产品的高质量及提高开发组生产力 设计、开发、测试应用程序,符合已建立的高标准 

最低要求 
计算机科学或相关专业本科教育经历 作为教育经历的替代,五年以上开发者的经验 
对商业软件开发流程有深刻理解 
对敏捷开发有经验 
对分布式版本管理系统、自动测试、集成测试有经验 对 Python 开发有大量经验 对 Web 应用开发、性能优化有深刻理解 
强沟通能力,在协作环境中可以作为单独贡献者或更大的团队中的一部分作出贡献

期望能力 
对 Django 有深刻理解 
对 REST 框架有理解 
有 PostgreSQL 使用经验

工作地点: 广州TIT创意产业园
待遇在 20k ~ 30k

可以发送简历到 adamwen <at> ifanr.com
或者直接邮件咨询我:)



-- 
+----------------------------------------------------
| Xiaobin Wen (Adam)
| Department of 
Network Engineering
| College of Information Engineering
| Qingdao University
| OSQDU Member
www.darkof.com
+----------------------------------------------------

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: python-cn <at> googlegroups.com
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了Google网上论坛中的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到python-cn+unsubscribe <at> googlegroups.com
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/python-cn/6D519BAE4EB34B15959EB9E82A82586B%40gmail.com
要查看更多选项,请访问https://groups.google.com/d/optout
bidong liao | 26 Aug 10:07 2014
Picon

[CPyUG] protobuf 2.6.0 发布,支持python3, 并且发布了新的c extension,性能大幅提升

摘自release note:  Python * A new C++-backed extension module (aka "cpp api v2") that replaces the old ("cpp api v1") one. Much faster than the pure Python code. This one resolves many bugs and is recommended for general use over the pure Python when possible. * Descriptors now have enum_types_by_name and extension_types_by_name dict attributes. * Support for Python 3.
http://protobuf.googlecode.com/svn/trunk/CHANGES.txt

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: python-cn-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了Google网上论坛中的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到python-cn+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/python-cn/CAKWdOVRfX16heeQkS0QUVGCovxEmFNiy-Q28TPjNDtD7ezWiUg%40mail.gmail.com
要查看更多选项,请访问https://groups.google.com/d/optout
jie chen | 26 Aug 04:22 2014
Picon

[CPyUG] Re: 多线程模型下,如何获取进度信息呢?

不好意思,第1个思路还有点问题,无法判断已完成的任务有多少。
应该是每个线程中再传入一个标记任务完成的Queue,当完成一个任务就向该Queue中插入一条数据标记该任务完成,
在显示进度的线程里就从该队列里拿数据统计即可。

On Tuesday, August 26, 2014 10:16:41 AM UTC+8, jie chen wrote:

有几种思路:

1. 使用线程池,线程池中每个线程都从同一Queue中获取任务并执行,这样任务的总大小你肯定知道,当前Queue中的大小你也知道。
    这样你就可以知道当前的任务进度了。

2. 不使用线程池,有多少个任务就开多少个线程,然后根据threading.activeCount()/threading.active_count()来判断当前活着的线程数也可以。
    不过要记得MainThread永远存在,所以记得减1。

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: python-cn <at> googlegroups.com
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了Google网上论坛中的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到python-cn+unsubscribe <at> googlegroups.com
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/python-cn/a1b937b9-19e0-4c60-972a-99729b1112ea%40googlegroups.com
要查看更多选项,请访问https://groups.google.com/d/optout
zhang joto | 25 Aug 14:41 2014
Picon

[CPyUG] 通过multiprocssing.queues.Queue传自定义对象的问题

各位:

    我最近在公司的项目中使用python进行数据移植工作,为了提高效率整个框架使用了multiprocssing模块通过Queue弄了个生产-消费者的模型。由于调用我的库的团队都是仅有C开发经验的兄弟,因此我自己写了个类,以便其他人能以C结构体的方式引用数据库记录的单个字段。

    但是在使用过程中发现如果使用multiprocessing.queues.Queue在进程间传递该对象的话会出现写入和读出内容不匹配的情况(或者是读出的值与前一条记录重复,或者一条记录的每个字段的值都是None)。如果直接传递数据库取出的元组,或者使用multiprocess.Manager()的实例来创建Queue则一切正常。

    我起初认为是自定义类在pickle/unpickle过程中可能出现了数据丢失或错乱的情况,所以自己实现了__setstate__/__getstate__方法,并测试过一个对象pickle到文件,另一个python进程是正常unpickle的。但经过multiprocessing.queues.Queue传递的错乱现象仍然存在。

    自定义类的定义如下:

class PyStruct(object):
    """将序列转为模仿C结构体的数据结构,创建后不允许再添加新的属性。

    需要将其中的值当作序列来处理时,需使用PyStruct.values导出。
    >>> flds = ('brh_id', 'brh_name', 'brh_addr')
    >>> line = PyStruct(flds)
    >>> line.values
    [None, None, None]
    >>> line.brh_id = 110101001
    >>> line.brh_addr = 'beijing'
    >>> line.values
    [110101001, 'bejijing', None]
    >>> line.brh_id
    110101001
    >>> line = PyStruct(flds, (40, 'nanjing', 'No. 11  '))
    >>> line.values
    [40, 'nanjing', 'No. 11  ']
    >>> line.brh_id = 50
    >>> line.values
    [50, 'nanjing', 'No. 11  ']
    >>> line.strip()
    >>> line.values
    [50, 'nanjing', 'No. 11']
    >>> line.reset()
    >>> line.values
    [None, None, None]
    """

    def __init__(self, cols, values=None):
        """创建PyStruct类结构体对象。

        Args:
            cols: 属性名称序列。
            values: 属性值的序列,不指定时默认每个属性的值都为None。
        """
        self.__dict__['_fields'] = {key: i for i, key in enumerate(cols)}
        self.__dict__['_len'] = len(cols)
        if values:
            self.set_values(list(values))
        else:
            self.reset()

    def __len__(self):
        return self._len

    def __repr__(self):
        attrdict = {}
        for i in self._fields:
            attrdict[i] = self._values[self._fields[i]]
        return str(attrdict)

    def __setattr__(self, name, value):
        if name in self._fields:
            self._values[self._fields[name]] = value
        else:
            raise AttributeError

    def __getattr__(self, name):
        if name.startswith('__'):
            return super(object, self).__getattr__(name)
        try:
            return self._values[self._fields[name]]
        except ValueError:
            raise AttributeError

    <at> property
    def values(self):
        """获取属性值序列的拷贝。

        Returns:
            属性值列表。
        """
        return self._values[:]

    def set_values(self, values):
        """一次性设置所有的属性值。

        Args:
            values: 属性值序列。

        Raises:
            ValueError: 属性值序列的长度与属性名序列长度不同时抛出。
        """
        if self._len == len(values):
            self.__dict__['_values'] = list(values)
        else:
            raise ValueError

    def reset(self, value=None):
        """一次性将属性值全部重置。

        Args:
            value: 指定属性初始值,默认为None,设为可变对象可能会带来副作用。
        """
        self.__dict__['_values'] = [value] * self._len

    def strip(self):
        """对字符串类型的属性值全部执行strip()。"""
        self.__dict__['_values'] = [i.strip() if isinstance(i, str)
                                    else i for i in self._values]

    def __getstate__(self):
        return (self._fields, self.values)

    def __setstate__(self, state):
        self.__dict__['_fields'] = state[0]
        self.__dict__['_len'] = len(state[0])   
        self.set_values(state[1])

    该对象的self._fields为数据库字段的元组,self._values则为数据库取出的记录元组转来的list。

    不知是否有人碰到过这样的问题,有什么解决方案,又或者有人能告诉我是我的代码的缺陷导致的?

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: python-cn <at> googlegroups.com
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了Google网上论坛中的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到python-cn+unsubscribe <at> googlegroups.com
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/python-cn/CA%2B5JgC0ONpVFE%3DD4h5xaGpvHck6WA-UYe8Z%3DVUfwC7i1DZOaZQ%40mail.gmail.com
要查看更多选项,请访问https://groups.google.com/d/optout
Gelin Yan | 25 Aug 13:24 2014
Picon

Re: [CPyUG] python 中 twisted框架里如何监听 标准输入

不妨去它的邮件列表问还直接点。

在 2014年8月25日 下午7:21,"wzj" <wangzhaojiang2013 <at> gmail.com>写道:
最近在学习twisted 框架。 但是看到目前为止 都是对read进行监听。 老是找不到对write的监听方法。 在此求救!!!
还有个小问题  我在浏览网上的代码时候为什么很少人用 derfer 这个库...

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: python-cn <at> googlegroups.com
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了Google网上论坛中的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到python-cn+unsubscribe <at> googlegroups.com
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/python-cn/d3628d15-a2f0-42ee-b167-02253acf2115%40googlegroups.com
要查看更多选项,请访问https://groups.google.com/d/optout

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: python-cn <at> googlegroups.com
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了Google网上论坛中的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到python-cn+unsubscribe <at> googlegroups.com
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/python-cn/CABkOF6Qvn2Jpe0OopggnbpB84hqGRuh0o9kz2XvDdHBPHZEWQA%40mail.gmail.com
要查看更多选项,请访问https://groups.google.com/d/optout
shhgs | 23 Aug 16:37 2014
Picon

Re: [CPyUG] Re: 关于static typed python的想法

性能有多大提升得看jit的效率,趋势肯定是越来越快的。
On Aug 23, 2014 8:03 AM, "1989lzhh" <1989lzhh <at> gmail.com> wrote:
>
>
>
> 发自我的 iPhone
>
> 在 Aug 23, 2014,19:24,HYRY <ruoyu0088 <at> gmail.com> 写道:
>
>> 用Cython提速的库很多,例如pandas, kivy, scikit-learn, scikit-image, h5py等。性能的确需要手工优化,但是比用C语言写扩展还是方便多了。
>>
>> 在 2014年8月23日星期六UTC+9下午8时08分02秒,limodou写道:
>>>
>>> 但是静态类型到底能带来性能上的多大提升。现在看好多cython的示例都是相对简单的,感觉没有比较清晰的性能优化的建议和示例。另外这个过程还是有些过于手工化,对于复杂的程序或一般的应用不知道有多少人会用?
>>>
>>>
>>> 2014-08-23 19:02 GMT+08:00 Zoom.Quiet <zoom.... <at> gmail.com>:
>>>>
>>>> 而且,你这种想法早已是正式的 PEP 了
>>>> https://mail.python.org/pipermail/python-ideas/2014-August/028742.html
>>>> 并且 Guido 也大为心动,,,
>>>>
>>>> 2014-08-23 18:59 GMT+08:00 HYRY <ruoy... <at> gmail.com>:
>>>> > Cyhon有纯Python模式:
>>>> >
>>>> > http://docs.cython.org/src/tutorial/pure.html
>
> 这个我知道,不过个人感觉还不够智能,有点啰嗦...,很多时候类型是可以推导的。
>
>>>> >
>>>> > 在 2014年8月23日星期六UTC+9下午6时09分50秒,Liu Zhenhai写道:
>>>> >>
>>>> >>
>>>> >> 自从接触到python,我就对python的运行速度抱有怨念,一直关注各种提高python运行速度的解决方案,像cython,numba之类的。cython是显式的定义变量类型,美中不足的是定义方式不兼容python语法.
>>>> >>  我有个不成熟的想法,通过兼容python语法的形式实现静态类型定义,如下:
>>>> >> <at> jit #表示该函数将被编译
>>>> >> def f(a:int)->float
>>>> >>     with var:
>>>> >>         b=0 #b是int
>>>> >>         c=0.0 #c是float
>>>> >>     c=a+b
>>>> >>     return c
>>>> >> 函数的signiture 通过function annotation来实现(python3已支持)。
>>>> >> 局部变量的类型通过with var这样的语法定义,例如with语句的body下面
>>>> >> a=1,a的类型为int;
>>>> >> a=double(0),a的类型为double,
>>>> >> 依次类推。
>>>> >> with语句以外的语句根据之前定义的变量类型进行类型检查。
>>>> >> 若在with语句外面出现赋值语句,新出现的变量一律认为是object类型,(参照cython的处理方式),这样做的目的避免类型冲突,例如:
>>>> >> if a>1:
>>>> >>     b=1#int
>>>> >> else:
>>>> >>     b=0.0 # float
>>>> >> c=b #b的类型是?编译期无法确定,只能认为是object。
>>>> >> 若b的类型在前面已经定义便不存在这种冲突。
>>>> >> 目前计划使用cython作为后端。
>>>> >> 我在此抛砖引玉,欢迎大家提意见。
>>>> >>
>>>> > --
>>>> > --
>>>> > 邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
>>>> > 规则: http://code.google.com/p/cpyug/wiki/PythonCn
>>>> > 发言: pyth... <at> googlegroups.com
>>>> > 详情: http://code.google.com/p/cpyug/wiki/CpyUg
>>>> > G+: https://plus.google.com/u/0/communities/108786798869709602787
>>>> > 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
>>>> > ---
>>>> > 您收到此邮件是因为您订阅了Google网上论坛中的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
>>>> > 要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到python-cn+unsubscribe <at> googlegroups.com
>>>> > 要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/python-cn/9b42c4b8-a8db-46b1-8390-d6cd8afb922a%40googlegroups.com
>>>> > 要查看更多选项,请访问https://groups.google.com/d/optout
>>>>
>>>>
>>>>
>>>> --
>>>> 人生苦短, Pythonic! 冗余不做,日子甭过!备份不做,十恶不赦!
>>>> KM keep growing environment culture which promoting organization be learnning!
>>>> 俺: http://zoomquiet.io
>>>> 许: http://creativecommons.org/licenses/by-sa/2.5/cn/
>>>>
>>>> --
>>>> --
>>>> 邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
>>>> 规则: http://code.google.com/p/cpyug/wiki/PythonCn
>>>> 发言: pyth... <at> googlegroups.com
>>>> 详情: http://code.google.com/p/cpyug/wiki/CpyUg
>>>> G+: https://plus.google.com/u/0/communities/108786798869709602787
>>>> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
>>>> ---
>>>> 您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
>>>> 要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到python-cn+unsubscribe <at> googlegroups.com
>>>> 要在网络上查看此讨论,请访问 https://groups.google.com/d/msgid/python-cn/CAAFijRfm32C%3D0MgAf0YSOo9oaFkknAgsfhKxpOKQ-cNHZ9b9qQ%40mail.gmail.com
>>>> 要查看更多选项,请访问 https://groups.google.com/d/optout
>>>
>>>
>>>
>>>
>>> --
>>> I like python!
>>> UliPad <<The Python Editor>>: http://code.google.com/p/ulipad/
>>> UliWeb <<simple web framework>>: https://github.com/limodou/uliweb
>>> My Blog: http://my.oschina.net/limodou
>>
>> --
>> --
>> 邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
>> 规则: http://code.google.com/p/cpyug/wiki/PythonCn
>> 发言: python-cn <at> googlegroups.com
>> 详情: http://code.google.com/p/cpyug/wiki/CpyUg
>> G+: https://plus.google.com/u/0/communities/108786798869709602787
>> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
>> ---
>> 您收到此邮件是因为您订阅了Google网上论坛中的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
>> 要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到python-cn+unsubscribe <at> googlegroups.com
>> 要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/python-cn/7a5cffdd-8ad1-49cb-99e8-0d73e89de90f%40googlegroups.com
>> 要查看更多选项,请访问https://groups.google.com/d/optout
>
> --
> --
> 邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
> 规则: http://code.google.com/p/cpyug/wiki/PythonCn
> 发言: python-cn <at> googlegroups.com
> 详情: http://code.google.com/p/cpyug/wiki/CpyUg
> G+: https://plus.google.com/u/0/communities/108786798869709602787
> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
> ---
> 您收到此邮件是因为您订阅了Google网上论坛中的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
> 要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到python-cn+unsubscribe <at> googlegroups.com
> 要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/python-cn/EDCA9683-A893-4B9A-B431-4EDFD765F595%40gmail.com
> 要查看更多选项,请访问https://groups.google.com/d/optout

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: python-cn <at> googlegroups.com
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了Google网上论坛中的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到python-cn+unsubscribe <at> googlegroups.com
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/python-cn/CAHiqXHF21wR48zx7CAXZ49wZhf7DL-o8zVHaY%2BT4AWTExBxPzg%40mail.gmail.com
要查看更多选项,请访问https://groups.google.com/d/optout
1989lzhh | 23 Aug 11:09 2014
Picon

[CPyUG] 关于static typed python的想法

自从接触到python,我就对python的运行速度抱有怨念,一直关注各种提高python运行速度的解决方案,像cython,numba之类的。cython是显式的定义变量类型,美中不足的是定义方式不兼容python语法.
 我有个不成熟的想法,通过兼容python语法的形式实现静态类型定义,如下:
 <at> jit #表示该函数将被编译
def f(a:int)->float
    with var:
        b=0 #b是int
        c=0.0 #c是float
    c=a+b
    return c
函数的signiture 通过function annotation来实现(python3已支持)。
局部变量的类型通过with var这样的语法定义,例如with语句的body下面
a=1,a的类型为int;
a=double(0),a的类型为double,
依次类推。
with语句以外的语句根据之前定义的变量类型进行类型检查。
若在with语句外面出现赋值语句,新出现的变量一律认为是object类型,(参照cython的处理方式),这样做的目的避免类型冲突,例如:
if a>1:
    b=1#int
else:
    b=0.0 # float
c=b #b的类型是?编译期无法确定,只能认为是object。
若b的类型在前面已经定义便不存在这种冲突。
目前计划使用cython作为后端。
我在此抛砖引玉,欢迎大家提意见。

-- 
--

-- 
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: python-cn <at> googlegroups.com
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
--- 
您收到此邮件是因为您订阅了 Google
网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到python-cn+unsubscribe <at> googlegroups.com。
要在网络上查看此讨论,请访问 https://groups.google.com/d/msgid/python-cn/11F9040D-CF11-4AEE-9C02-7F7FC7834002%40gmail.com。
要查看更多选项,请访问 https://groups.google.com/d/optout。
Picon

[CPyUG] 这是 matplotlib.image 的bug?太严重了吧

Python 3.4

import numpy as np
import matplotlib.image as mpimg


if __name__ == '__main__':
    new = np.ndarray((1020, 1020, 4))
    mpimg.imsave("test.png", new)
    t = mpimg.imread("test.png")
    print(new.shape, t.shape)


输出
(1020, 1020, 4) (1019, 1019, 4)


​少了一个像素,天哪!
暂时仅发现当行或列为 1020 时​会变成 1019

有没有人知道这是怎么回事???

-- 
胡说 http://eggfan.org
扯淡 http://twitter.com/catsinrain
乱码 http://github.com/tioover

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: python-cn-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了Google网上论坛中的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到python-cn+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/python-cn/CACRJXJZp-uJ%3D8YMzYo2hRm9dRAfV8HAMUkiDyJauyfFUNzUuRQ%40mail.gmail.com
要查看更多选项,请访问https://groups.google.com/d/optout
卢知州 | 22 Aug 11:16 2014
Picon

Re: 回复: Re: [CPyUG] [BPyUG][2014.9.1]总第48次聚之好久不

酒仙桥这边的到哪儿都是坑,

这次聚有什么主题嘛?

Sent from Mailbox


On Fri, Aug 22, 2014 at 3:49 PM, Qing Feng <qingfenghello <at> gmail.com> wrote:

我們接下來會分別在幾個區搞,下一次,咱們就中關村。還是大家都離中關村比較近,也可以改約中關村

2014/08/22 13:38 "zhangdedezhu <at> gmail.com" <zhangdedezhu <at> gmail.com>:
不错。支持,就是离的有点远,过不去,海淀区这边的有人组织么

 
发件人: Qing Feng
发送时间: 2014-08-22 13:02
收件人: python-cn
主题: Re: [CPyUG] [BPyUG][2014.9.1]总第48次聚之好久不

對,這次日期的選擇,就是拍腦袋定的,因為選擇週末可能大家也會有各種約會。黑色週一搞個活動還可以調劑心情~八點多到也沒問題的

2014/08/22 10:19 "Zoom.Quiet" <zoom.quiet <at> gmail.com>:
2014-08-22 10:12 GMT+08:00 卢知州 <zhizhoulu <at> gmail.com>:
> 大妈误会了。
> 我是说这个时间点,9月1号貌似是周一,19:00的话,不在附件上班的人想过去还是有点困难。
>

是也乎,是也乎,上个月去台北,才知道,台湾几乎所有社区活动都不在周末,
因为周末是私人时间,要给家人和爱人的...
帝都的交通是个大问题,
但是,现在网络条件好了,完全可以同时进行网络直播,
无法在左近来现场的,线上掺合,
反正都是要加班的,抽2小时参与社区活动,总比周末要花一整天来回奔波要好...

清风曰了,先撞个日子,恢复 BPyUG 会课后,
大家慢慢共同找到个节奏,定期来,就习惯了,

象 SHLUG 固定在每周四固定地点进行 hangout,
几年下来没有什么不方便的,
魔都不比帝都小呢...

> —
> Sent from Mailbox
>
>
> On Fri, Aug 22, 2014 at 10:00 AM, Zoom.Quiet <zoom.quiet <at> gmail.com> wrote:
>>
>> 2014-08-22 9:49 GMT+08:00 卢知州 <zhizhoulu <at> gmail.com>:
>> > 9月1号。。。这是猎豹专场的节奏啊
>> >
>>
>> 和多年前总是在 SINA 大厦折腾一样,
>> 那时我们从不说 SINA 专场哪,,,
>> 有免费场地支持大家来聚,是好事儿,
>> 和内容并无关系...
>> 帝都人才济济, 猎豹公司的 Pythoneer 只能算小辈了...
>>
>> >
>> > —
>> > Sent from Mailbox
>> >
>> >
>> > On Fri, Aug 22, 2014 at 9:10 AM, Qing Feng <qingfenghello <at> gmail.com>
>> > wrote:
>> >>
>> >> 是下班之後~ 19:00
>> >>
>> >> 2014/08/22 7:27 "limodou" <limodou <at> gmail.com>:
>> >>>
>> >>> 这时间,去不了。
>> >>>
>> >>>
>> >>> 2014-08-21 22:57 GMT+08:00 QingFeng <qingfenghello <at> gmail.com>:
>> >>>>
>> >>>>
>> >>>>
>> >>>> 大家好,我是清风,北京的Python活动真的是停摆了好久,刚好最近辞去了所有的工作闲赋在家,准备开始重新组织北京地区的Python活动,希望大家多多支持。活动的编号,我按照之前wiki的记录,继续递增了一号,所以是第48次聚会。此次聚会我建议咱们主要是自由交流,因为是长久停摆之后的第一次聚会,如果有特别想分享的Topic,回复这个邮件即可,感谢大家。
>> >>>>
>> >>>> 聚会时间: 2014.9.1 星期一 (擇日不如撞日,我就替大家決定了)
>> >>>> 聚会地点:朝阳区朝阳北路237号复兴国际中心
>> >>>> 地图: http://j.map.baidu.com/jvHFn
>> >>>>
>> >>>> 另外,感谢猎豹网络的對此次場地提供的大力支持
>> >>>>
>>
>> ...



--
人生苦短, Pythonic! 冗余不做,日子甭过!备份不做,十恶不赦!
KM keep growing environment culture which promoting organization be learnning!
俺: http://zoomquiet.io
许: http://creativecommons.org/licenses/by-sa/2.5/cn/

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: python-cn <at> googlegroups.com
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛“python-cn(华蟒用户组,CPyUG 邮件列表)”中的主题。
要退订此主题,请访问https://groups.google.com/d/topic/python-cn/q7VKOyxbAVI/unsubscribe
要退订此论坛及其所有主题,请发送电子邮件到python-cn+unsubscribe <at> googlegroups.com
要在网络上查看此讨论,请访问 https://groups.google.com/d/msgid/python-cn/CAAFijRcOO6%3D3Q_AtYRWSax55_VEBfH2VRFhamRz%3D_8tpZSE_tw%40mail.gmail.com
要查看更多选项,请访问 https://groups.google.com/d/optout

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: python-cn <at> googlegroups.com
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了Google网上论坛中的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到python-cn+unsubscribe <at> googlegroups.com
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/python-cn/CAE_PXQ13q_t4cu6P6mq-tnHpLTSsX_DQThJMNSqdVdmcVzB7XQ%40mail.gmail.com
要查看更多选项,请访问https://groups.google.com/d/optout

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: python-cn <at> googlegroups.com
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了Google网上论坛“python-cn(华蟒用户组,CPyUG 邮件列表)”中的主题。
要退订此主题,请访问https://groups.google.com/d/topic/python-cn/q7VKOyxbAVI/unsubscribe
要退订此论坛及其所有主题,请发送电子邮件到python-cn+unsubscribe <at> googlegroups.com
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/python-cn/201408221338082542630%40gmail.com
要查看更多选项,请访问https://groups.google.com/d/optout

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: python-cn <at> googlegroups.com
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了Google网上论坛中的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到python-cn+unsubscribe <at> googlegroups.com
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/python-cn/CAE_PXQ2u8BpOEKmzuc94dZXiw67O8yLRqtmXyKQFJwLquHJHoQ%40mail.gmail.com
要查看更多选项,请访问https://groups.google.com/d/optout

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: python-cn <at> googlegroups.com
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了Google网上论坛中的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到python-cn+unsubscribe <at> googlegroups.com
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/python-cn/1408699000734.f160b891%40Nodemailer
要查看更多选项,请访问https://groups.google.com/d/optout
Axplus | 22 Aug 09:33 2014
Picon

[CPyUG] 关于Python打包、发布的疑问


额,反正我不是一个Python新手,但这么多年的经历,居然从来没有看到过太多关于“打包”。

为什么?

大部分时候,是告诉你用distutils或者setuptools编写一个setup.py文件,然后巴拉巴拉的——这是发布开发包、源码。敢问有人在实际跟用户打交道的时候用过Python吗?

我来提点实际的。

一、写了一个脚本目的是到用户的机器上去收集一些log

已知用户的Mac机器上已经有Python 2.7了;用户是完全的电脑白痴,根本不懂什么叫Terminal,我该如果让用户运行这个脚本呢?

我尝试了几个方案:

  1. 写一个gather脚本(一定不能加.py后缀),在文件头中加入#!/usr/bin/python,然后chmod a+x gather,之后用zip打包好,发给用户,说:双击解压完之后会有个gather,双击运行,然后就会生成一个文件,这个文件回传给我。
  2. 把所有的源码zip成一个叫gather的包(一定不能加.zip后缀),通过zip hack的方法,在文件头插入#!/usr/bin/python,然后还是chmod,打包成zip发给用户。这个方法的好处在于可以打包多个源文件:对于一个大的工具,代码肯定不可能全部写到一个文件中的吧。

二、配置脚本

我写了很多的配置脚本,用来修改机器的配置的。也就是说任意换一个机器的时候,我只要运行脚本,就可以自动把机器行为、外观等等设置成一样的(我需要在多个Unix, Mac上切换工作)。

我做的事情就是把脚本同步到Dropbox上,然后在不同机器上下载、运行。问题在Dropbox上下载一个Directory的内容有多麻烦你造么。跟前面说的那样子,为什么我不能下载个zip之类的包,然后运行就完事了呢?而且我还可以调试zip文件。

Python没有默认这样打包的库啊。

三、写一个Django/Tornado的项目,并发布到自己的Web Server上去

听起来是自己的Web Server,所以发布源码无所谓,是的,关键问题在于,我要怎么发布上去呢,每次零零散散的上传各种.py文件,然后重新启动一下service?为什么不能像Tomcat发布那样,直接打包成一个war,然后上传,自动解包呢?


所以最后,抛出我的问题来,大家都是怎么打包、发布的,怎么解决我上面提到的那三种情况的。

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: python-cn <at> googlegroups.com
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了Google网上论坛中的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到python-cn+unsubscribe <at> googlegroups.com
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/python-cn/97854087-e211-40c7-ad47-3adb42248ffb%40googlegroups.com
要查看更多选项,请访问https://groups.google.com/d/optout

Gmane