Tag: python

我应该把我自己的Python模块,以便它可以导入

我有我自己的包在Python中,我经常使用它。 什么是最优雅或传统的目录,我应该把我的包,所以它将被导入而不玩PYTHONPATH或sys.path? 怎么样的网站包例如? /usr/lib/python2.7/site-packages 。 在Python中复制和粘贴包是否很常见?

Python的Twitter库:哪一个?

我意识到这是一个懒惰的问题,但我想看看Twitter的人有哪些python库有很好的经验。 我已经使用Python的Twitter工具 ,喜欢它的简洁和美观的界面,但它似乎并不是一个stream行的 – 它甚至没有列在Twitter的图书馆页面 。 然而,还有其他很多其他的列表: Konpaku Kogasa的oauth-python-twitter2。 结合python-twitter和oauth-python-twitter来创build一个演化的OAuth宠物小精灵。 python-twitter由DeWitt Clinton。 这个库为Twitter API提供了一个纯Python接口。 python-twyt by Andrew Price。 BSD许可Twitter API接口库和命令行客户端。 tustty-twister Dustin Sallings。 扭曲的Twitter接口。 由Ryan McGrath举办的Twython。 REST和search库灵感来自python-twitter。 由Josh Roesslein提供。 支持OAuth,searchAPI,stream媒体API。 我的要求相当简单: 能够使用OAuth 能够跟随用户 能够发送直接的消息 能够发布 stream媒体API将是很好的 把一个人扭在一边(我不是在这种情况下使用扭曲的),你有没有使用其他的,如果是的话,你推荐他们? [更新] FWIW,我结束了与Python的Twitter工具再次。 新版本很好地支持OAuth,它是一个非常聪明的API,所以我坚持下去。

如何更改可序列化python对象的json编码行为?

很容易改变不是JSON序列化对象的格式,例如datetime.datetime。 我的要求,为了debugging的目的,是改变一些自定义对象的扩展从基本的像dict和list ,以json格式序列化。 代码: import datetime import json def json_debug_handler(obj): print("object received:") print type(obj) print("\n\n") if isinstance(obj, datetime.datetime): return obj.isoformat() elif isinstance(obj,mDict): return {'orig':obj , 'attrs': vars(obj)} elif isinstance(obj,mList): return {'orig':obj, 'attrs': vars(obj)} else: return None class mDict(dict): pass class mList(list): pass def test_debug_json(): games = mList(['mario','contra','tetris']) games.src = 'console' scores = mDict({'dp':10,'pk':45}) scores.processed = […]

如何使用python argparseparsing多个子命令?

我正在实施一个命令行程序,其界面如下所示: cmd [GLOBAL_OPTIONS] {command [COMMAND_OPTS]} [{command [COMMAND_OPTS]} …] 我已经通过了argparse文档 。 我可以使用argparse add_argument实现GLOBAL_OPTIONS作为可选参数。 和{command [COMMAND_OPTS]}使用子命令 。 从文档看来,我只能有一个子命令。 但正如你所看到的,我必须实现一个或多个子命令。 parsing使用argparse命令行参数的最佳方法是什么?

ZODB在现实生活中

使用Python编写应用程序,并使用各种ORM设置和直接的SQL进行操作。 所有这些都是丑陋的罪过。 我一直在寻找ZODB作为一个对象存储,它看起来很有希望的替代scheme…你会推荐它吗? 什么是您的经验,问题和批评,特别是关于开发人员的观点,可扩展性,完整性,长期维护和替代? 任何人开始一个项目,并把它呢? 为什么? 虽然ZODB,Pypersyst和其他人的想法很有趣,但似乎对他们缺乏热情:(

基于用户代理改变Django模板

我做了一个Django网站,但是我已经喝了Koolaid,我想要制作一个iPhone版本。 经过深思熟虑后,我提出了两个select: 做一个完整的其他网站,如i.xxxx.com。 使用Django的网站框架将其绑定到相同的数据库中。 找一些读取用户代理的中间件,并dynamic改变模板目录。 但是,我真的更喜欢选项#2。 我有一些保留,主要是因为Django的文档不能dynamic改变设置 。 我find了一个可以做我想要的片段 。 我的主要问题是让它尽可能无缝,我希望它是自动的,对用户是透明的。 有没有其他人遇到同样的问题? 有人会关心分享他们如何解决使Django网站的IPhone版本? 更新 我与中间件的组合,并调整模板调用。 对于中间件,我使用minidetector 。 我喜欢它,因为它检测到大量的移动用户代理。 我所要做的就是在我的意见中检查request.mobile。 对于模板调用调整: def check_mobile(request, template_name): if request.mobile: return 'mobile-%s'%template_name return template_name 我用这个任何观点,我知道我有两个版本。 去做: 弄清楚如何在render_to_response的扩展版本中访问request.mobile ,所以我不必使用check_mobile('template_name.html') 如果不存在移动版本,则使用以前的自动回退到常规模板。

了解Popen.communicate

我有一个名为1st.py的脚本,它创build了一个REPL(read-eval-print-loop): print "Something to print" while True: r = raw_input() if r == 'n': print "exiting" break else: print "continuing" 然后我用以下代码启动1st.py : p = subprocess.Popen(["python","1st.py"], stdin=PIPE, stdout=PIPE) 然后尝试这个: print p.communicate()[0] 它失败了,提供这个追溯: Traceback (most recent call last): File "1st.py", line 3, in <module> r = raw_input() EOFError: EOF when reading a line 你能解释一下这里发生了什么事吗? 当我使用p.stdout.read() ,它永远挂起。

什么是最好的Python库模块的骨架代码?

很多python IDE将会以如下模板启动你: print 'hello world' 这是不够的…所以这里是我的骨架代码来开始这个问题: 我的模块骨架,简短版本: #!/usr/bin/env python """ Module Docstring """ # ## Code goes here. # def test(): """Testing Docstring""" pass if __name__=='__main__': test() 和, 我的模块骨架,长版本: #!/usr/bin/env python # -*- coding: ascii -*- """ Module Docstring Docstrings: http://www.python.org/dev/peps/pep-0257/ """ __author__ = 'Joe Author (joe.author@website.org)' __copyright__ = 'Copyright (c) 2009-2010 Joe Author' __license__ […]

如何处理pylint消息:警告:方法可能是一个函数

我有一个python类,并运行pylint。 一条消息是: Warning: Method could be a function 这是否告诉我,将这个方法移出类是更好的,因为它不使用任何实例variables? 在C#中,我会使这个静态方法。 什么是最pythonic在这里做什么?

大pandasread_csv和用usecols过滤列

当我用pandas.read_csv过滤列并使用多个索引时,我有一个csv文件,它不能正确使用pandas.read_csv 。 import pandas as pd csv = r"""dummy,date,loc,x bar,20090101,a,1 bar,20090102,a,3 bar,20090103,a,5 bar,20090101,b,1 bar,20090102,b,3 bar,20090103,b,5""" f = open('foo.csv', 'w') f.write(csv) f.close() df1 = pd.read_csv('foo.csv', index_col=["date", "loc"], usecols=["dummy", "date", "loc", "x"], parse_dates=["date"], header=0, names=["dummy", "date", "loc", "x"]) print df1 # Ignore the dummy columns df2 = pd.read_csv('foo.csv', index_col=["date", "loc"], usecols=["date", "loc", "x"], # <———– Changed parse_dates=["date"], […]