gvim插件python自动补全pydiction的用法

除了复制python_pydiction.vim到指定的插件目录,还需要将
complete-dict和pydiction.py复制到指定目录,注意这两个文件可以复制到任何目录。但是要在.vimrc中指定,比如:
filetype plugin on
let g:pydiction_location=’/usr/share/vim/vim72/ftplugin/pydiction/complete-dict’
let g:pydiction_menu_height=20
参考:
Gvim 的 Python 自动补全插件 Pydiction 安装
Windows和Linux差别不大。

Google App Engine webapp使用中文

参照:Google App Engine webapp framework

# -*- coding: utf-8 -*-
# 使用UTF-8编码,如果不加会因为中文编码导致python执行问题
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

class MainPage(webapp.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('此处可以输出中文正文!')

application = webapp.WSGIApplication(
[...]

几个Python框架

1. Pylons
Pylons is a lightweight web framework emphasizing flexibility and rapid development.
Why use Pylons?
Pylons combines the very best ideas from the worlds of Ruby, Python and Perl, providing a structured but extremely flexible Python web framework. It’s also one of the first projects to leverage the emerging WSGI standard, which allows extensive re-use and flexibility [...]

IIS and Django

中文版:在Windows平台下的IIS中发布Django应用
英文版:Django On Windows With IIS And SQLServer

Zenoss Core

Zenoss Core是开源企业级IT管理软件-是智能监控软件,他允许IT管理员依靠单一的WEB控制台来监控网络架构的状态和健康度。Zenoss Core同时也是开源的网络与系统管理软件。

Zenoss Core的强大能力来自于深入的列表与配置管理数据库,以发现和管理公司IT环境的各类资产(包括服务器、网络、和其他结构设备)。Zenoss可以创建 关键资产清单和对应的组件级别(接口、服务、进程,已安装的软件等)。建立好模型后,就可以监控与报告IT架构中各种资源的状态和性能容限了。 Zenoss同时提供与CMDB关联的事件和错误管理系统,以协助提高各类事件和提醒的管理效率。以此提高IT管理人员的效率。
来源:开源中国
Zenoss Enterprise Features

> A Single Product for Full Operational Awareness
* One Source for Real-Time Visibility into Your Entire IT Infrastructure
* One Application to Discover, Model, Monitor, Manage Events, Alert, Remediate and Report
* One Product for you to Administer and Maintain
> Scale to Manage Tens of Thousands of Resources
* Horizontally [...]

python关于web service的一点资料

还是资料,这次是关于python的。
1. JCC installation instructions
2. setuptools
3. Installing PyLucene
4. Python开发WebService: REST, web.py, eurasia, Django
5. Getting RESTful with web.py
6. 强大的sqlalchemy
7. 用python实现CRUD功能REST服务
8. sqlalchemy作者作品之一Myghty
9. Mason – a powerful perl-based web site development and delivery engineJonathan Swartz
10. SQLAlchemy老巢
11. 使用 python 开发 Web Service
12. limodou的python学习decorator的使用,修饰函数也许以后会很常用。说穿了,有没有点象函数泛型?
13. Google Data APIs
14. Juiced Google Analytics Python API
15. Python Module Auto Reload
16. 使用 SQLAlchemy这个还是质量比较高的一篇
17. 在linux 下运行PowerDesigner 15 [...]

动态引入python类

Borland一系的开发工具,RTTI功能都比较强,这使得我们很容易Create a object from classname。不过borland框架的限制是所有的对象需要从TObject继承。当然,当遇到不同的构造函数(constructor)的时候,创建对象可能会出现意外。造成内存泄露,对象狂野,流程不可预期~~~。
这个微妙的时刻,接口可以帮助我们实现模式里的AOP切分。其实什么面向方面、面向对象、各种模式在某些时刻会产生矛盾,强烈要求一致、业务分割、松耦合,关键是业务的时限,要求你三两天拿出模块来,死扣书本的人会输到一塌糊涂。
话说RTTI的这个由字符串到类实体创建可以帮助我们渡过耦合这个难关。想好了各种接口,就让配置文件起作用吧,module们,动作起来吧。
python里从字符串到类实体通过资料实现思路如下:
1. 创建模块文件,如importx.py:

#
class X:
def test(self):
print "test from x"

2. 调用模块文件

m = __import__("importx")
obj = m.X()
obj.test()

如果制定好X遵循某接口,你的系统也许就是只需要“配置”一下。
参考资料:
1. Importing Python Modules
2. How to dynamically load a Python class

python一句话,求10000以内的素数

最近加入了一个QQ群,学到如下,原文是求100以内的素数,因为难以用肉脑比较时间,所以改成10000。

#Fictiony 陈:
[x for x in range(2,10000) if not [i for i in range(2,x) if x % i == 0 ] ]

#Fictiony 陈:
reduce( lambda s, x: s+ ([x] if all([x %i for i in s]) else []), range(2,10000), [])

#七月:
[2]+[d for d in range(3, 10000, 2) if 2 ** (d -1) %d == 1]

Google将限制Python语言的应用

Collin Winter是Python社区一位颇具影响力的开发者,他曾是CPython项目的核心开发者之一、也曾是Unladen Swallow(见文末注释)的核心开发者,参与了很多Python项目的开发。近来传闻Google将在其新项目中限制Python的使用,为此有开发者(以K表示)在Google 论坛中公开询问了Collin Winter,Collin Winter就很多尖锐的问题做了解答。这篇帖子同时也吸引了很多高质量的跟帖。
K:我听说Google将在其新项目中限制Python的使用,无疑这将大大减少Python代码和Python得到的支持。这是否确有其事还是只是谣传?
Collin Winter:的确,Google将限制Python的应用因为:Python不如Java和C++快,线程占有、内存使用都很高在使用Python开发新系统的时候,我们深知如果负载增加了10倍或者100倍系统会怎样,开发出的服务会有多糟糕我想Python已经发展到了一个狭缝中,因此在选择时我们应当权衡其优点和缺点,也许开发人员使用Python会很有效率,但随着系统的增大却会遇到许多平台级的性能限制。
K:Unladen Swallow会改变这一切么?你的期望是什么呢?
Collin Winter:Unladen Swallow旨在尽可能地将Python用在更多它现在尚未涉足的地方,而且Unladen Swallow也并非包治百病的灵丹妙药。如果没有人给Python注入投资,Python将仍旧比C和Java慢、占用更多的内存和线程。我希望开发者对Python的关注能够形成一个良性循环:越多的开发者感兴趣、越多的公司干兴趣,就有越多的投资注入,从而开发出更多的Python资源。
我认为Python及其他动态语言最好的一点就是:许多开发者工作于不同的子系统,但都为同一个代码基工作。而C或者C++语言则不同,参与的开发者越多,代码基就越支离破碎。从这个角度来说动态语言更加易于sandbox操作。这种敏捷和灵活是Python语言的重要特性。
K:Python的确是比C和Java慢,但它比较起v8 JavaScript引擎如何,是否会是后者的竞争对手呢?
Collin Winter:我认为像CPython之类的应用不可能像V8或者SquirrelFish Extreme那样快,毕竟后两者是专为速度而生的。我们也曾遇到一些高速性能方面的优化却很难配置到CPython中,因而只能放弃。作为开源项目的志愿者,CPython跟V8的侧重点不一样:CPython强调的是简单,也即简单、稍慢的内核便于人们在业余时间维护。
对于Python的另一个项目PyPy我倒是有很高的期望,希望它能摆脱C-level向后兼容的束缚而提供长久的性能解决方案。但这个愿望可能需要十年来实现。
K:CPython为什么考虑的是人们在业余时间的维护?
Collin Winter:CPython开发人员很少是有报酬的,几乎全部是志愿者,而Ruby开发者却能够从EngineYard等赞助商那里获得基金,因而当他们意识到MRI伺服web应用很慢时,他们可以更好地开发他们的VM。这也决定了我们开发的东西更加照顾大多数人的需求。
一位名叫Leon Sit的开发者在这里补充道:我认为当系统增大时,CPython除了在数字码方面表现不错之外其他的都差强人意。而且,CPython依赖C编辑器而Windows系统根本没有C编辑器。为了提高CPython的速度,就需要添加打印信息而它们涉及的语法却非Python的标准语法。
K:那么Jython呢?
Collin Winter: Unladen Swallow的另一个主要目标是维护与C扩展模块的兼容性,后者被Google广泛使用。使用Jython需要将基础架构从SWIG移植到JNI,这是一项很痛苦的工作,而且几乎会无可避免地带来非常繁琐的bug。这是我们为什么没有选择Jython作为baseline的首要原因。
Jython是一部分全职的有薪开发者。但到目前为止,IronPython和Jython不得不将大部分的开发精力放在与CPython的兼容上,只有很少的精力放在性能优化方面。也由此可见支持Python 3多么影响Jython,IronPython, PyPy等项目。
网友Tom Machinski认为:CPython并非与低阶虚拟机(LLVM)相兼容。Unladen Swallow项目组提高五倍性能的承诺并没有真正意义上的实现。如果CPU耗用至少90%的执行时间用以运行一小段循环,CPython无疑可以将这段程序提高100倍甚至更多。但如果是大的应用呢?而且不要忘了,这种加速往往只是针对程序的某个点,也即热点优化(hot spot optimization)。
不要误会我的意思,我当然对Unladen Swallow项目很感兴趣而且希望它能够真正地实现目标。但我也绝对认同Collin的意思:即便Unladen Swallow项目所有的目标都能真正实现,Python也不是Java或者C++的对手。
有开发者问:像Google这样的公司为什么不用Python编写一个原型,然后逐渐将核心部分转化为Cyhton,这样以来既能利用Python的优势,也可以获得C的效率和优化性能?
Craig Citro答道:我认为对Google而言这是发展Python的新计划:用Python写代码、做测试,然后将重要部分转化为CPython以提高速度。然而这无疑是一项巨大的工作,而Collin Winter在上文中谈到的也不过是提高Python的运行速度、让Python在Google中继续保留下去。
而且目前CPython与Unladen Swallow的目标有很多矛盾之处,比如在低阶虚拟机(LLVM)方面,Unladen Swallow希望引入许多runtime优化和特性,而CPython却无法做到。
但是正如HotSpot JVM在一些标准方面可以打败g++一样,CPython击败单纯的Python代码静态编辑也不是什么难事。比如,如果你想写一个特殊的应用而你又很在乎性能,CPython就是很棒的选择。你可以将对象转化为本地的C数据类型,如果你嫌麻烦而将Python代码转为CPython,JIT编辑器会很好地优化这些纯Python代码。
注释: Unladen Swallow是Python的一个分支,由Google的一组开发人员组成。由于Google 在很多的应用项目中使用了Python,例如内部的服务器监控以及对外的Google Groups等。 所以Google很自然地希望提高Python的性能。该项目致力于改善Python的执行效率。Unladen Swallow的目标是将Python的性能提高五倍。为了实现该目标,将增加JIT的支持,并对虚拟机进行重新设计。在性能提升的同时,依旧会与CPython保证源代码级别的兼容。
Unladen Swallow 的项目领导者及核心开发人员包括: Collin Winter、Jeffrey Yasskin、Thomas Wouters ,均为长期从事 CPython 的核心开发人员。他们贡献自己的20%的自由工作时间给Unladen Swallow。但是这个组织坚持认为这是一个Python项目,而非Google所有。
来源:CSDN
我在研究Python/LUA/Ruby的时候,谷歌出了Go!。不知道我开始研究Erlang的时候,会再出什么东西。
性能和效率问题Python/LUA等Script会解决的。

Django模板中使用css, javascript

(r'^css/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/var/www/django-demo/css'}),
(r'^js/(?P</path><path>.*)$', 'django.views.static.serve', {'document_root': '/var/www/django-demo/js'}),
(r'^images/(?P</path><path>.*)$', 'django.views.static.serve', {'document_root': '/var/www/django-demo/images'}),

模板中使用下述方式即可:

<link href="/css/demo.css" type="text/css" rel="stylesheet">

注:可采用os.path.dirname(globals()["__file__"])来获得当前文件所在路径,比如

(r'^css/(?P<path>.*)$', 'django.views.static.serve', {'document_root': os.path.dirname(globals()["__file__"])+'/css'}),

可以使用os.path.abspath()函数返回此路径的绝对路径。

Page 1 of 212