小编Ali*_*har的帖子

如何使用PIL调整图像大小并保持其纵横比?

是否有一种显而易见的方法可以解决这个问题?我只是想制作缩略图.

python image thumbnails python-imaging-library

394
推荐指数
13
解决办法
60万
查看次数

元类的一些(具体)用例是什么?

我有一个朋友喜欢使用元类,并定期提供它们作为解决方案.

我很想你几乎不需要使用元类.为什么?因为我认为如果你正在对一个类做类似的事情,你应该把它做成一个对象.并且需要一个小的重新设计/重构.

能够使用元类导致许多地方的很多人使用类作为某种二流对象,这对我来说似乎是灾难性的.编程是否被元编程取代?遗憾的是,类装饰器的添加使其更加可接受.

所以,我非常想知道Python中元类的有效(具体)用例.或者开悟为什么变异类有时比变异对象更好.

我将开始:

有时,在使用第三方库时,能够以某种方式改变类是有用的.

(这是我能想到的唯一一个案例,并不具体)

python metaclass

103
推荐指数
10
解决办法
2万
查看次数

为什么全球翻译锁定?

Python全局解释器锁的功能究竟是什么?编译为字节码的其他语言是否采用类似的机制?

python scripting multithreading locking bytecode

86
推荐指数
5
解决办法
2万
查看次数

确保子程序在退出Python程序时已经死了

有没有办法确保所有创建的子进程在Python程序的退出时间都死了?通过子进程,我指的是使用subprocess.Popen()创建的.

如果没有,我应该迭代所有发出的杀戮然后杀死-9?什么更干净?

python subprocess kill zombie-process

59
推荐指数
7
解决办法
5万
查看次数

ASCII艺术图像转换算法如何工作?

有一些很好的免费"图像到ASCII艺术"转换网站,如下所示:ASCII-art.org

这种图像转换算法如何工作?

                         ,                     
                     .   W    ,                
                     W   W    @                
                     W  ,W    W                
                  ,  W, :W*  .W  .             
                  #  WW @WW  WW  #             
                  W  WW.WWW  WW: W             
                  W. WW*WWW# WW@ W             
               * :WW.WWWWWWW@WWW@W  #          
              +* #WW#WWWWWWWWWWWWW# W          
              W# @WWWWWWWWWWWWWWWWW W          
              WW WWWWWWWWWWWWWWWWWW W          
              WW WWWWWWWWWWWWWWWWWW@W#         
             ,WW.WWWWWWWWWWWWWWWWWWWWW         
              WW@WWWWWWWWWWWWWWWWWWWWW         
            : WWWWWWWWWWWWWWWWWWWWWWWW :       
            @ WWWWWWWW@WWWWWWW@@WWWWWW.        
            W*WWWWWW::::@WWW:::::#WWWWW        
            WWWWWW@::   :+*:.   ::@WWWW        
            WWWWW@:*:.::     .,.:.:WWWW        
            @WWWW#:.:::.     .:: #:@WWW        
            :WWW@:#. ::     :WWWW:@WWWW        
             WWW#*:W@*@W     .   W:#WWW        
            #WWWW:@      ::   ::  *WWWW        
            W@WW*W  .::,.::::,:+  @@WW#,       
            WWWW## ,,.: .:::.: .  .WWW:,       
            @WWW@: …

algorithm ascii-art

55
推荐指数
4
解决办法
4万
查看次数

您如何部署WSGI应用程序?(以及为什么这是最好的方式)

部署WSGI应用程序.有很多方法可以给这只猫上皮.我目前正在使用mod-wsgi的apache2,但我可以看到一些潜在的问题.

那怎么办呢?

  1. Apache Mod-wsgi(其他mod-wsgi似乎不值得)
  2. 纯Python Web服务器,例如paste,cherrypy,Spawning,Twisted.web
  3. as 2但是使用来自nginx,apache2等的反向代理,具有良好的静态文件处理能力
  4. 转换为其他协议,例如带有网桥(例如Flup)的FCGI,并在传统的Web服务器中运行.

更多?

我想知道你是怎么做的,以及为什么这是最好的方法.我绝对会你,向我提供有关最新情况和具体应用的详细信息等等.我会赞成任何非疯狂的答案.

python deployment wsgi

42
推荐指数
4
解决办法
1万
查看次数

是否存在从Python的OSError获取信息的跨平台方式?

例如,在一个简单的目录创建操作中,我可以像这样制作一个OSError:

(Ubuntu Linux)

>>> import os
>>> os.mkdir('foo')
>>> os.mkdir('foo')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 17] File exists: 'foo'
Run Code Online (Sandbox Code Playgroud)

现在我可以像这样抓住这个错误:

>>> import os
>>> os.mkdir('foo')
>>> try:
...     os.mkdir('foo')
... except OSError, e:
...     print e.args
... 
(17, 'File exists')
Run Code Online (Sandbox Code Playgroud)

是否有一种跨平台的方式,我可以知道17或"文件存在"将始终意味着相同的事情,以便我可以根据情况采取不同的行动?

(这是在另一个问题中出现的.)

python cross-platform exception

41
推荐指数
1
解决办法
1万
查看次数

38
推荐指数
1
解决办法
2万
查看次数

间接等级解决了每个问题

引用"间接水平解决每个问题"的含义在计算机科学中意味着什么?

computer-science abstraction indirection

35
推荐指数
5
解决办法
1万
查看次数

Google Drive API无法与ProGuard(NPE)配合使用

目前,我有经验,使用Google Drive API的一段代码在没有引入ProGuard的情况下运行正常.

但是,在引入ProGuard之后,我遇到了以下运行时错误.

    at java.lang.Thread.run(Thread.java:856)
Caused by: java.lang.NullPointerException
    at com.google.api.client.util.Types.getActualParameterAtPosition(Types.java:329)
    at com.google.api.client.util.Types.getIterableParameter(Types.java:309)
    at com.google.api.client.json.JsonParser.parseValue(JsonParser.java:546)
    at com.google.api.client.json.JsonParser.parse(JsonParser.java:350)
    at com.google.api.client.json.JsonParser.parseValue(JsonParser.java:586)
    at com.google.api.client.json.JsonParser.parse(JsonParser.java:289)
    at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:76)
    at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:71)
    at com.google.api.client.http.HttpResponse.parseAs(HttpResponse.java:491)
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:456)
    at com.jstock.c.b.a(CloudFile.java:136)
Run Code Online (Sandbox Code Playgroud)

请注意,崩溃发生在我的代码中(如果我使用mapping.txt进行回溯,则为com.jstock.cba)

// request is Files.List
FileList files = request.execute();
Run Code Online (Sandbox Code Playgroud)

在我的项目中,我认为有以下两个关键指令,能够防止崩溃发生:我告诉ProGuard永远不要触及jackson和Google库.

-keep class org.codehaus.** { *; }
-keep class com.google.** { *; }
-keep interface org.codehaus.** { *; }
-keep interface com.google.** { *; }
Run Code Online (Sandbox Code Playgroud)

但这不起作用.NPE仍然发生在Types.java上

请注意,我还有另一种尝试是,我认为混淆过程会导致NPE发生.因此,我尝试使用它来禁用它-dontobfuscate.但这一次,我将无法生成APK文件,并得到一个流行的错误消息:转换为Dalvik格式失败,错误1

以下是在Google Drive API中导致NPE的proguard配置.

-optimizationpasses 1 …
Run Code Online (Sandbox Code Playgroud)

android google-api proguard google-api-java-client google-drive-api

26
推荐指数
2
解决办法
5679
查看次数