小编Tad*_*eck的帖子

在virtualenv内运行覆盖

我最近偶然发现了在虚拟环境中运行覆盖率测量的一些问题.我不记得过去的类似问题,也无法在网上找到解决方案.

基本上,当我尝试在virtualenv中运行测试套件时,它工作正常.但是,尽管我尝试使用coverage它,但由于缺少所需的模块而失败.基于StackOverflow上的一些答案,我检查了我的脚本并发现它coverage使用不同的解释器,即使从内部运行也是如此virtualenv.

以下是如何重现它:

$ virtualenv --no-site-packages venv
New python executable in venv/bin/python
Installing Setuptools................................................done.
Installing Pip.......................................................done.
$ source venv/bin/activate
(venv)$ echo 'import sys; print(sys.executable)' > test.py
(venv)$ python test.py
/home/tadeck/testground/venv/bin/python
(venv)$ coverage run test.py 
/usr/bin/python
Run Code Online (Sandbox Code Playgroud)

问题是:如何coverage无缝地使用虚拟环境?我可以在sys.path系统范围内更改或安装所需的模块,但必须采用更清洁的方式.

python virtualenv coverage.py python-coverage

15
推荐指数
2
解决办法
3978
查看次数

如何从PHP中的字符串中删除括号?

我有以下字符串,并希望使用str_replace或preg_replace删除括号但不确定如何.我已经能够使用str_replace删除左括号,但无法删除右括号.

这是刺痛:

$coords = '(51.50972493425563, -0.1323877295303646)';
Run Code Online (Sandbox Code Playgroud)

我试过了:

<?php echo str_replace('(','',$coords); ?>
Run Code Online (Sandbox Code Playgroud)

删除了开头括号,但我现在认为我需要preg_replace来删除它们.

怎么会这样呢?

帮助赞赏

php string preg-replace str-replace

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

在Python中使用样式化长链

我编写了一个"基于链"的Python API(类似于jQuery).所以我可以写:

myObject.doStuff().doMoreStuf().goRed().goBlue().die()
Run Code Online (Sandbox Code Playgroud)

问题是我没有找到一种方法来保持长链的语法清洁.在JavaScript中我可以做到

myOjbect
   .doStuf()
   .doMoreStuf()
   .goRed()
   .goBlue()
   .die()
Run Code Online (Sandbox Code Playgroud)

但Python有缩进限制......

python

13
推荐指数
3
解决办法
2100
查看次数

为什么局部变量访问速度比Python中的类成员访问速度快?

在尝试解决更复杂的问题时,我开始将访问速度与局部变量与成员变量进行比较.

这是一个测试程序:

#!/usr/bin/env python

MAX=40000000

class StressTestMember(object):
    def __init__(self):
        self.m = 0

    def do_work(self):
        self.m += 1
        self.m *= 2

class StressTestLocal(object):
    def __init__(self):
        pass

    def do_work(self):
        m = 0
        m += 1
        m *= 2

# LOCAL access test
for i in range(MAX):
    StressTestLocal().do_work()

# MEMBER access test
for i in range(MAX):
    StressTestMember().do_work()
Run Code Online (Sandbox Code Playgroud)

我知道实例化StressTestMemberStressTestLocal每次迭代可能看起来不错,但在建模程序中这些基本上是Active Records是有意义的.

经过简单的基准测试,

  • LOCAL访问测试:0m22.836
  • 会员访问测试:0m32.648s

本地版本的速度提高了大约33%,同时仍然是课程的一部分.为什么?

python performance benchmarking

13
推荐指数
2
解决办法
3686
查看次数

慢慢访问Django的request.body

有些移动客户端提交时,有时这行Django应用程序(使用Apache/mod_wsgi托管)需要花费大量时间来执行(例如99%的请求处理,如New Relic所测量的6秒):

raw_body = request.body
Run Code Online (Sandbox Code Playgroud)

(request传入请求在哪里)

我有的问题:

  1. 有什么可能减缓对request.body这么多的访问?
  2. 在调用Django直到客户端发送整个有效负载之前,Apache要等待的正确配置是什么?也许问题出在Apache配置中.

Django的body属性HttpRequest是一个属性,所以它真正解决了那里真正做的事情,以及如果可能的话,如何在Django应用程序之外实现它.我希望Apache在将其发送到Django应用程序之前等待完整请求.

python apache django performance request

12
推荐指数
2
解决办法
1394
查看次数

计算目录中大量文件的最快/最简单方法是什么(在Linux中)?

我有一些目录,包含大量文件.每当我尝试访问其中的文件列表时,我都无法做到这一点,或者有明显的延迟.我试图ls在Linux上的命令行中使用命令,而我的托管服务提供商的网络界面也没有帮助.

问题是,当我这样做ls时,甚至需要花费大量时间才能开始显示某些内容.因此,ls | wc -l也无济于事.

经过一些研究后,我想出了这个代码(在这个例子中,它计算了某些服务器上新电子邮件的数量):

print sum([len(files) for (root, dirs, files) in walk('/home/myname/Maildir/new')])
Run Code Online (Sandbox Code Playgroud)

上面的代码是用Python编写的.我使用了Python的命令行工具,它运行得非常快(立即返回结果).

我对以下问题的答案感兴趣:是否可以更快地计算目录(没有子目录)中的文件?最快的方法是什么?

python linux ls directory-listing

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

Python - 描述符'split'需要一个'str'对象但是收到'unicode'

嗯,我有现成的代码,我确信它确实有效,但我收到以下错误:

TypeError:描述符'split'需要'str'对象但收到'unicode'

这就是整个def:

def assemblePacket(self, type):
    ipSplit = str.split(self.serverVars[0], '.')

    packet = 'SAMP'
    packet += chr(int(ipSplit[0]))
    packet += chr(int(ipSplit[1]))
    packet += chr(int(ipSplit[2]))
    packet += chr(int(ipSplit[3]))
    packet += chr(self.serverVars[1] & 0xFF)
    packet += chr(self.serverVars[1] >> 8 & 0xFF)
    packet += type

    return packet
Run Code Online (Sandbox Code Playgroud)

这是问题所在:

ipSplit = str.split(self.serverVars[0], '.')
Run Code Online (Sandbox Code Playgroud)

我确定这不是因为代码,我之前尝试过(相同的脚本)并且它有效.不知道为什么它现在没有.这个"unicode"让我觉得我必须改变"str.split",但是嗯.等待意见:)

python

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

有什么理由不在Django中使用USE_ETAGS和CommonMiddleware?

我能想到的唯一原因是计算ETag可能很昂贵.如果页面变化非常快,浏览器的缓存很可能会被无效ETag.在这种情况下,计算这ETag将浪费时间.另一方面,304在可能的情况下给出响应可以最小化传输所花费的时间.ETag当用Django实现时,CommonMiddleware什么时候可能成为净胜利者有什么好的指导方针?

django performance etag caching http

9
推荐指数
1
解决办法
937
查看次数

django用户模型和自定义主键字段

Django默认在名为" id"的每个模型上创建一个主键字段,其类型为AutoField.在我的模型上,我UUIDField通过使用" primary_key"属性来覆盖它以使用自定义作为主键.我还希望User模型中django.contrib.auth有一个UUIDField作为主键,但如果不更改User模型源代码,这似乎是不可能的.

有没有推荐的方法来解决这个问题?

python django

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

jQuery是否支持选择器中的OR?

我想知道jQuery是否可以做这样的事情还是有其他方法来做到这一点?

$(".row_c:last|.row_d:last").css("color","red");
Run Code Online (Sandbox Code Playgroud)

我有交替的行,我想找到最后一行,它是row_c或row_d但是catch是row_c或row_d插入另一组交替行row_a和row_b之间,以便说明:

  • row_a
  • row_b
  • row_c
  • row_d
  • row_c < - 需要找到这个
  • row_a
  • row_b

要么

  • row_a
  • row_b
  • row_c
  • row_d < - 需要找到这个
  • row_a
  • row_b

我们可以使用| 或jQuery中的运算符?还是有类似的东西?

javascript jquery

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