情况 我试图将一个开源库移植到Python 3.( SymPy ,如果有人想知道)。 所以,我需要为Python 3构build时自动运行2to3 。为此,我需要使用distribute 。 因此,我需要移植目前的系统,这(根据doctest)是distutils 。 问题 不幸的是,我不确定这些模块之间有什么区别 – distutils , distribute , setuptools 。 文档最好是粗略的,因为它们似乎都是彼此分叉的,意图在大多数情况下(但实际上并非全部)兼容,等等。 问题 有人可以解释这些差异吗? 我该用什么? 什么是最现代化的解决scheme? (另外,我还要感谢一些关于移植到Distribute指南,但这超出了问题的范围。)
所以,当我回答这个问题时,我正在玩Python,而且我发现这是无效的: o = object() o.attr = 'hello' 由于AttributeError: 'object' object has no attribute 'attr' 。 但是,对于从对象inheritance的任何类,它是有效的: class Sub(object): pass s = Sub() s.attr = 'hello' 按预期打印s.attr显示“hello”。 这是为什么? Python语言规范中的哪些内容指定您不能将属性分配给vanilla对象?
我刚刚重新阅读了Python 3.0中的新增function ,并指出: round()函数舍入策略和返回types已更改。 准确的中途情况现在四舍五入到最接近的结果,而不是从零开始。 (例如,round(2.5)现在返回2而不是3) 和一轮的文件: 对于支持round()的内置types,将值四舍五入为功率减n的10的最接近倍数; 如果两个倍数相等,则舍入为偶数select 所以,在v2.7.3下: In [85]: round(2.5) Out[85]: 3.0 In [86]: round(3.5) Out[86]: 4.0 正如我所料。 但是,现在在v3.2.3下: In [32]: round(2.5) Out[32]: 2 In [33]: round(3.5) Out[33]: 4 这看起来是违反直觉的,与我对四舍五入的理解是相反的(并且会绊倒人)。 英语不是我的母语,但直到我读到这个,我以为我知道四舍五入是什么意思: – /我相信在引入v3的时候,一定有一些这样的讨论,但我无法find一个很好的理由我的search。 有没有人有洞察到为什么这改变了? 有没有其他的主stream编程语言(例如, C,C ++,Java,Perl, ..)这样做(对我来说是不一致的)四舍五入? 我在这里错过了什么? 更新:@ Li-aungYip的评论“银行家的四舍五入”给了我正确的search词/关键字search,我发现这个问题: 为什么.NET使用银行家舍入为默认? ,所以我会仔细阅读。
我用下面的方式用pandas来写excel文件: import pandas writer = pandas.ExcelWriter('Masterfile.xlsx') data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2']) writer.save() Masterfile.xlsx已经由多个不同的选项卡组成。 pandas正确写入“主”表,不幸的是,它也删除所有其他标签。
如何使用urllib2.urlopen中默认的用户代理下载网页?
我需要在python脚本中设置一些环境variables,并且需要从python(shell脚本)调用的所有其他脚本,这些脚本将是subprocess,以查看环境variables集。 该值是一个数字。 如果我做os.environ["DEBUSSY"] = 1 ,它抱怨说1必须是string。 我也想知道如何在python中(在脚本的后面部分)读取环境variables。
有人可以向我解释这个吗? 这对我没有任何意义。 我复制一个字典到另一个,编辑第二个,都改变了。 为什么发生这种情况? >>> dict1 = {"key1": "value1", "key2": "value2"} >>> dict2 = dict1 >>> dict2 {'key2': 'value2', 'key1': 'value1'} >>> dict2["key2"] = "WHY?!" >>> dict1 {'key2': 'WHY?!', 'key1': 'value1'}
在Python中,我可以使用哪些命令来查找: 当前目录(当我运行Python脚本时在terminal中)和 我正在执行的文件是?
我的项目目前正在接收python的JSON消息,我需要从中获取信息的位。 对于这个目的,让我们把它设置为一个简单的string中的JSON: jsonStr = '{"one" : "1", "two" : "2", "three" : "3"}' 到目前为止,我一直使用列表生成JSON请求,然后json.dumps但做相反的,我想我需要使用json.loads但我没有太多运气。 任何人都可以给我一个片段,在上面的例子中input“two”会返回“2”吗?
我想看看什么是最好的方式来确定当前脚本目录在python中? 我发现这两种调用python代码的方法很多,很难find一个好的解决scheme。 这里有一些问题: 如果脚本使用exec , execfile执行,则__file__未定义 __module__仅在模块中定义 用例: ./myfile.py python myfile.py ./somedir/myfile.py python somedir/myfile.py execfile('myfile.py') (来自另一个脚本,可以位于另一个目录中,可以有另一个当前目录。 我知道没有完美的解决scheme,因为在某些情况下,我正在寻找解决大部分案件的最佳方法。 最常用的方法是os.path.dirname(os.path.abspath(__file__))但是如果使用exec()从另一个脚本执行脚本,这种方法是os.path.dirname(os.path.abspath(__file__)) 。 警告 任何使用当前目录的解决scheme都会失败,根据脚本的调用方式,这可能会有所不同,或者可以在运行脚本中更改。