小编Rei*_*ica的帖子

在Python中查找原始异常的模块名称

例:

>>> try:
...    myapp.foo.doSomething()
... except Exception, e:
...    print 'Thrown from:', modname(e)

Thrown from: myapp.util.url
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,异常实际上是在myapp/util/url.py模块中抛出的.有没有办法获得该__name__模块的?

我的目的是在logging.getLogger功能中使用它.

python logging exception introspection stack-trace

9
推荐指数
3
解决办法
3936
查看次数

为什么在Python 3.x中将'thread'模块重命名为'_thread'?

Python 3.x将低级模块'thread'重命名为'_thread' - 我不明白为什么在文档中.有人知道吗?

python multithreading python-3.x

9
推荐指数
3
解决办法
5376
查看次数

确定可执行文件(或库)是32位还是64位(在Windows上)

我试图找出一个给定的可执行文件(或库)是否从Python编译为32位或64位.我运行Vista 64位,并想确定目录中的某个应用程序是否编译为32位或64位.

有没有一种简单的方法只使用标准的Python库(目前使用2.5.4)?

python windows dll 64-bit executable

9
推荐指数
2
解决办法
6760
查看次数

以独立于平台的方式处理特定于Windows的异常

考虑以下Python异常:

  [...]
    f.extractall()
  File "C:\Python26\lib\zipfile.py", line 935, in extractall
    self.extract(zipinfo, path, pwd)
  File "C:\Python26\lib\zipfile.py", line 923, in extract
    return self._extract_member(member, path, pwd)
  File "C:\Python26\lib\zipfile.py", line 957, in _extract_member
    os.makedirs(upperdirs)
  File "C:\Python26\lib\os.py", line 157, in makedirs
    mkdir(name, mode)
WindowsError: [Error 267] The directory name is invalid: 'C:\\HOME\\as\
\pypm-infinitude\\scratch\\b\\slut-0.9.0.zip.work\\slut-0.9\\aux'
Run Code Online (Sandbox Code Playgroud)

我想处理这个特殊的异常 - 即,错误号为267的WindowsError.但是,我不能简单地执行以下操作:

try:
    do()
except WindowsError, e:
    ...
Run Code Online (Sandbox Code Playgroud)

因为这在Unix系统上不起作用,因为在异常模块中甚至没有定义WindowsError.

有一种优雅的方法来处理这个错误吗?

python windows exception-handling exception

8
推荐指数
2
解决办法
7552
查看次数

hashlib/md5.与python 2.4的兼容性

python 2.6报告md5模块已过时,应使用hashlib.如果我import md5改为import hashlib我将解决python 2.5和python 2.6,但不适用于python 2.4,它没有hashlib模块(导致ImportError,我可以捕获).

现在,要修复它,我可以执行try/catch,并定义一个getMd5()函数,以便根据try块的结果定义一个合适的函数.这个解决方案好吗?

你会如何在一个更一般的情况下解决这个问题,例如:你有两个不同的库具有相同的目标但不同的界面,你想要使用一个,但如果第一个没有,则退回并使用另一个找到.

python import md5 backwards-compatibility hashlib

8
推荐指数
1
解决办法
5844
查看次数

让ActivePython与WSH一起使用

我已经安装了ActivePython 2.7.2并且我正在尝试使用wscript/cscript通过控制台执行.pys脚本,[即在Microsoft的WSH(Windows Scripting Host)中使用ActivePython(扩展名为.pys的PythonScript)] wscript我得到两个错误.

  1. "程序无法启动,因为您的计算机缺少MSVCR90.dll尝试重新安装程序来解决此问题"
  2. "无法为脚本找到脚本引擎Python

我做了一些谷歌搜索,并从这里下载并安装了Microsoft Visual C++ Redistributable Package(x86):http://www.microsoft.com/download/en/confirmation.aspx?id = 29无济于事.

我已经尝试'pythonw c:\ Python27\Lib\site-packages\win32comext\axscript\client\pyscript.py'来注册python.

任何帮助将不胜感激.

我在Win7 x86上运行.

python pywin32 wsh activepython

8
推荐指数
1
解决办法
2251
查看次数

在Go中设置进程名称(由`ps`看到)

以下(正确地)不起作用:

package main

import (
        "os"
        "time"
)

func main() {
        os.Args[0] = "custom name"
        println("sleeping")
        time.Sleep(1000 * time.Second)
        println("done")
}
Run Code Online (Sandbox Code Playgroud)

有些语言提供了将进程名称设置为内置功能的特性(例如,在Ruby中,它只是分配给它 $0)或作为第三方库(Python).

我正在寻找一种至少适用于Linux的解决方案.

linux process go

8
推荐指数
2
解决办法
4578
查看次数

Go - formFile用于多个文件

formFile函数完美地工作,但在文档中它表示"FormFile返回所提供的表单键的第一个文件".有没有办法获得带有输入的html表单的几个文件,如:

<input type="file" name="myfiles" multiple="multiple">
Run Code Online (Sandbox Code Playgroud)

可能会回来?

forms http go

8
推荐指数
1
解决办法
2711
查看次数

Go的类型推断算法

Go编译器使用什么类型的推理算法?

我尝试在golang上查找,但我找不到文档.我很想假设它会是Hindley-Milner,但我想肯定

type-inference go

7
推荐指数
1
解决办法
2097
查看次数

使结构"具有范围"?

type Friend struct {
    name string
    age  int
}

type Friends struct {
    friends []Friend
}
Run Code Online (Sandbox Code Playgroud)

我想制作Friends范围,这意味着,如果我有一个my_friends带有类型的变量Friends,我可以循环使用:

for i, friend := range my_friends {
    // bla bla
}
Run Code Online (Sandbox Code Playgroud)

Go有可能吗?

go

7
推荐指数
2
解决办法
2289
查看次数