小编ign*_*low的帖子

没有名为pkg_resources的模块

我正在将一个Django应用程序部署到开发服务器,并在运行pip install requirements.txt时遇到此错误:

Traceback (most recent call last):
  File "/var/www/mydir/virtualenvs/dev/bin/pip", line 5, in <module>
    from pkg_resources import load_entry_point
ImportError: No module named pkg_resources
Run Code Online (Sandbox Code Playgroud)

pkg_resources似乎随setuptools一起分发.最初我认为这可能没有安装到virtualenv中的python所以我使用以下命令将setuptools(2.6,与Python相同的版本)安装到virtualenv中的Python站点包中

sh setuptools-0.6c11-py2.6.egg --install-dir /var/www/mydir/virtualenvs/dev/lib/python2.6/site-packages
Run Code Online (Sandbox Code Playgroud)

编辑这只发生在virtualenv中.如果我在virtualenv之外打开一个控制台,那么就存在pkg_resources

但我仍然得到同样的错误.关于为什么pkg_resources不在路径上的任何想法?

python django pip setuptools virtualenv

416
推荐指数
12
解决办法
44万
查看次数

Python:异常装饰器.如何保留堆栈跟踪

我正在写一个装饰器来应用于一个函数.它应该捕获任何异常,然后根据原始异常消息引发自定义异常.(这是因为suds抛出一个通用的WebFault异常,我从它的消息中解析Web服务抛出的异常并引发Python异常来镜像它.)

但是,当我在包装器中引发自定义异常时,我希望堆栈跟踪指向引发原始WebFault异常的函数.到目前为止,我提出了正确的异常(它动态地解析消息并实例化异常类). 我的问题:如何保持堆栈跟踪指向引发WebFault异常的原始函数?

from functools import wraps

def try_except(fn):
        def wrapped(*args, **kwargs):
            try:
                fn(*args, **kwargs)
            except Exception, e:
                parser = exceptions.ExceptionParser()
                raised_exception = parser.get_raised_exception_class_name(e)
                exception = getattr(exceptions, raised_exception)
                raise exception(parser.get_message(e))
        return wraps(fn)(wrapped)
Run Code Online (Sandbox Code Playgroud)

python exception decorator wrapper

19
推荐指数
2
解决办法
9948
查看次数

Git:如何克隆第一次提交?

谁能告诉我如何克隆第一次提交?我不想删除最近的提交,只需制作初始状态的克隆副本,这样我就可以获取一些文件.

git

16
推荐指数
3
解决办法
2万
查看次数

Python:在urllib2中禁用http_proxy

我使用代理集作为环境变量(export http_proxy = example.com).对于使用urllib2的一个调用,我需要暂时禁用它,即.取消设置http_proxy.我已经尝试了文档和互联网中建议的各种方法,但到目前为止一直无法取消代理.到目前为止,我尝试过:

# doesn't work
req = urllib2.Request('http://www.google.com')
req.set_proxy(None,None)
urllib2.urlopen(req)

# also doesn't work
urllib.getproxies = lambda x = None: {}
Run Code Online (Sandbox Code Playgroud)

python proxy urllib2 environment-variables

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

在UTF-8中显示法语重音字符的问题

我正在使用CakePHP构建的法语网站.我已尝试多种功能尝试将文本转换为UTF-8并正确显示,但到目前为止没有成功 - 任何带重音的字母都显示为带有问号的黑色菱形.当我将浏览器中的字符集更改为ISO-8859-1时,它们会正确显示,但我想使while网站符合UTF-8标准.我用过:

html_entity_decode($ string,ENT_QUOTES,'UTF-8'); htmlspecialchars($ string,ENT_QUOTES,'UTF-8'); 函数utf8_encode

但没有雪茄.页面在标题中设置为UTF-8

MySQL数据库也使用UTF-8.如何在UTF-8中正确显示重音字符?

php encoding utf-8

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

Git:如何忽略快进并将原点[branch]恢复到之前的提交?

我用了

git reset --hard dc082bc... 
由于一些错误的提交,恢复到分支回到所需的先前状态.这让我当地的分公司很好.但是,我想将'origin'上的分支回滚到同一个commit,以便我可以重新开始.谁能告诉我如何将原始分支(非主人)恢复到此提交?

我已经尝试过git push origin master,但它给出了以下错误

 ! [rejected]        branch -> branch (non-fast-forward)
error: failed to push some refs to 'git@github.com:xxx/xxx.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again.  See the 'Note about
fast-forwards' section of 'git push --help' for details.

git commit reverting

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

Django:访问模型属性

为noobish问题道歉,我对Python和Django都是全新的,并试图制作我的第一个应用程序.

我有一个简单的课程

class About(models.Model):
    title = models.CharField(max_length=200)
    description = models.TextField()
    date = models.DateTimeField('date added')
Run Code Online (Sandbox Code Playgroud)

我添加了一条记录.我可以访问它

about = About.objects.filter(id=1)
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试使用点语法来访问其属性,我会收到以下错误

    >>> about.title
Traceback (most recent call last):
  File "<console>", line 1, in <module>
AttributeError: 'QuerySet' object has no attribute 'title'
Run Code Online (Sandbox Code Playgroud)

我知道如何在模型中使用unicode来指定更好的返回值,例如

def __unicode__(self):
    return self.title
Run Code Online (Sandbox Code Playgroud)

我应该使用它来将模型数据格式化为字典/列表吗?或者我只是完全错过了一些默认行为?

python django django-models

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

可以通过PHP传递一个闭包吗?

我有一个数组排序功能如下:

public function sortAscending($accounts)
{
    function ascending($accountA, $accountB) {
        if ($accountA['AmountUntilNextTarget'] == $accountB['AmountUntilNextTarget']) {
            return 0;
        }
        return ($accountA['AmountUntilNextTarget'] < $accountB['AmountUntilNextTarget']) ? -1 : 1;
    }
    usort($accounts, $ascending);

    return $accounts;
}
Run Code Online (Sandbox Code Playgroud)

显然,这并不理想,因为搜索密钥很难编码.我以为我会通过将键作为参数传递给外部函数来使这个泛型,但是这在内部函数中是超出范围的.我试图通过使用一个闭包来解决这个问题,它可以访问param,而不是内部函数,如下所示:

public function sortAscending($accounts, $key)
{
    $ascending = function($accountA, $accountB) {
        if ($accountsA[$key] == $accountB[$key]) {
            return 0;
        }
        return ($accountA[$key] < $accountB[$key]) ? -1 : 1;
    }
    usort($accounts, $ascending);

    return $accounts;
}
Run Code Online (Sandbox Code Playgroud)

但是usort()只接受函数名,所以这不起作用.任何人都可以看到(更好?)实现这一目标的方式?

php arrays sorting closures usort

6
推荐指数
2
解决办法
7068
查看次数

重命名包含空格的文件名

我正在编写一个简单的Python脚本来重命名目录中的所有文件,用连字符替换文件名中的所有空格.我有以下崩溃在os.rename上

import os

path =  os.getcwd()
filenames = os.listdir(path)

for filename in filenames:
    os.rename(os.path.join(path + filename), os.path.join(path + filename.replace(" ", "-")))
Run Code Online (Sandbox Code Playgroud)

在控制台中给出错误:

Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
OSError: [Errno 2] No such file or directory
Run Code Online (Sandbox Code Playgroud)

有关为什么会发生这种情况的任何想法?

python operating-system rename file

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

什么是Go相当于Python的crypt.crypt?

我目前正在玩一本名为Violent Python的例子.你可以在这里看到我的实现

我现在正在尝试在Go中实现相同的脚本以比较性能,请注意我对Go来说是全新的.打开文件并遍历这些行很好,但是我无法弄清楚如何使用"加密"库以与Python的crypt.crypt(str_to_hash,salt)相同的方式对字符串进行散列.我觉得它可能就像

import "crypto/des"
des.NewCipher([]byte("abcdefgh"))
Run Code Online (Sandbox Code Playgroud)

但是,没有雪茄.任何帮助都会非常感激,因为将Go的并行性能与Python的多线程性能进行比较会非常有趣.

编辑: crypt.crypt的Python文档

python crypt des go

5
推荐指数
0
解决办法
1170
查看次数