小编emb*_*ert的帖子

Scrapy图像下载如何使用自定义文件名

对于我的scrapy项目,我目前正在使用ImagesPipeline.下载的图像以其URL 的SHA1哈希值存储为文件名.

如何使用我自己的自定义文件名来存储文件?

如果我的自定义文件名需要包含同一项中的另一个已删除字段,该怎么办?例如,使用item['desc']图像和文件名item['image_url'].如果我理解正确,那将涉及以某种方式访问​​图像管道中的其他项目字段.

任何帮助将不胜感激.

python scrapy

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

适应龙卷风的celery.task.http.URL

Celery包含一个能够使用amqp或其他一些芹菜后端发出异步HTTP请求的模块.我正在使用tornado-celery生产者进行异步消息发布.据我所知,龙卷风芹菜使用鼠兔为此.问题是如何使celery.task.http.URL适应龙卷风(使其无阻塞).基本上有两个地方需要改进:

  1. HttpDispatch.make_request() 必须使用tornado async http客户端实现;
  2. URL.get_async(**kw)或者URL.post_async(**kw)必须使用tornado API重新实现相应的非阻塞代码.例如:

    class NonBlockingURL(celery.task.http.URL):
    
        @gen.coroutine
        def post_async(self, **kwargs):
            async_res = yield gen.Task(self.dispatcher.delay, 
                                       str(self), 'POST', **kwargs)
            raise gen.Return(async_res)
    
    Run Code Online (Sandbox Code Playgroud)

但我无法理解如何以恰当和简洁的方式做到这一点.如何使其完全像非异步的非阻塞?顺便说一句,我正在使用amqp后端.

请给我一个很好的指导,甚至更好,一个例子.

python asynchronous tornado nonblocking celery

12
推荐指数
1
解决办法
592
查看次数

使用内联/嵌入图在IPython中运行python脚本

我想在一个带有python脚本的文件夹中有一个批处理文件.批处理文件应该调用脚本IPython并绘制内嵌/嵌入的图形.虽然有很多关于这方面的信息,但我没有让这个工作.

  • 如何运行python脚本IPython,显示嵌入的图?
  • 我需要使用pylab还是只能导入matplotlib.pyplot脚本?
  • 我是否必须适应脚本中的其他内容?
  • %pylab inline/ %matplotlib inline使用或不?

后面的命令给出了

In [1]: %pylab inline
UsageError: Invalid GUI request u'inline', valid ones are:[None, 'osx', 'qt4', 
'glut',   'gtk3', 'pyglet', 'wx', 'none', 'qt', 'gtk', 'tk']
In [2]: %matplotlib inline 
UsageError: Invalid GUI request u'inline', valid ones are:  [None, 'osx', 'qt4',
'glut', 'gtk3', 'pyglet', 'wx', 'none', 'qt', 'gtk', 'tk']`
Run Code Online (Sandbox Code Playgroud)

到目前为止我尝试了以下(不幸)

ipython --pylab=inline example_plots.py
Run Code Online (Sandbox Code Playgroud)

给我以下内容并退出

E:\CD\package\bin>ipython --pylab=inline example_plots.py
WARNING: 'inline' not …
Run Code Online (Sandbox Code Playgroud)

python inline matplotlib ipython

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

在句子列表中标记单词Python

我目前有一个文件,其中包含一个看起来像的列表

example = ['Mary had a little lamb' , 
           'Jack went up the hill' , 
           'Jill followed suit' ,    
           'i woke up suddenly' ,
           'it was a really bad dream...']
Run Code Online (Sandbox Code Playgroud)

"example"是这样的句子列表,我希望输出看起来像:

mod_example = ["'Mary' 'had' 'a' 'little' 'lamb'" , 'Jack' 'went' 'up' 'the' 'hill' ....] 等等.我需要将每个单词标记为单独的句子,以便我可以将mod_example(一次使用for循环)的句子中的每个单词与参考句子进行比较.

我试过这个:

for sentence in example:
    text3 = sentence.split()
    print text3 
Run Code Online (Sandbox Code Playgroud)

得到了以下输出:

['it', 'was', 'a', 'really', 'bad', 'dream...']
Run Code Online (Sandbox Code Playgroud)

我如何为所有句子得到这个? 它会一直覆盖.是的,还要提一下我的方法是否正确?这应该是一个单词列表,标记为tokenized ..谢谢

text nltk python-2.7

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

使用size_t uint32 uint64等的动机

当我读取一些代码时,对于整数,它们使用一堆不同类型的size_t, uint32, uint64等等.这样做的动机或目的是什么?为什么不用int?与平台交叉相关?或低级相关.

有时,代码对我有意义,因为他们只需要32位int或其他东西.但是,是什么size_t?请帮我说清楚.

c

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

如何在Windows上的PyQt4中使用phonon-vlc-backend

我正在帮助开发一个PyQt4.8应用程序,其中包括播放视频和音频.我们正在使用Phonon,部分原因是我们还将视频嵌入到QtWebkit使用相同内容的页面中.

在Windows 7上,默认的声子后端(phonon_ds94.dll)似乎与某些媒体格式(拒绝播放)相悖,因此我们希望尝试phonon_vlc后端.

这个页面似乎是最有帮助的,但我还没有成功.我已经提取了phonon_vlc.dll并将其复制到C:\Python26\Lib\site-packages\PyQt4\plugins\phonon_backend\.我已经安装了VLC 1.1.7.我已经删除了phonon_ds94.

但是,当我运行我的应用程序时,我只是得到错误:

WARNING: bool __thiscall Phonon::FactoryPrivate::createBackend(void) phonon backend plugin could not be loaded
Run Code Online (Sandbox Code Playgroud)

我也尝试添加C:\Program Files\VideoLAN\VLC%PATH%,但仍然没有喜悦.

有人可以提供任何建议吗?

python vlc phonon pyqt4

9
推荐指数
0
解决办法
1967
查看次数

使用Python的Fabric库进行嵌套调用"execute"

Python的Fabric提供了fab使用该execute函数调用实用程序外部的结构函数的功能.当execute在使用execute调用的另一个函数内调用函数时,会出现上下文问题.当调用内部执行时,Fabric丢失外部执行的上下文,并且永远不会恢复它.例如:

env.roledefs = {
    'webservers': ['web1','web2'],
    'load_balancer': ['lb1']
}

@roles('webserver')
def deploy_code():
    #ship over tar.gz of code to unpack.
    ...
    execute(remove_webserver_from_load_balancer, sHost=env.host_string)
    ...
    #shutdown webserver, unpack files, and restart web server
    ...
    execute(add_webserver_to_load_balancer, sHost=env.host_string)

@roles('load_balancer')
def remove_webserver_from_load_balancer(sHost=None):
   ssh("remove_host %s" % sHost)

execute(deploy_code)
Run Code Online (Sandbox Code Playgroud)

在第一次调用之后execute,Fabric完全丢失其上下文并执行deploy_code函数内的所有其他命令host_string='lb1'而不是'web1'. 我怎么能记住呢?

我想出了这个黑客,但我觉得它可能在未来的版本中破解:

 with settings(**env):
     execute(remove_webserver_from_load_balancer, sHost=env.host_string)
Run Code Online (Sandbox Code Playgroud)

这有效地保存了所有状态并在调用后恢复它,但看起来像是无意中使用了该函数.有没有更好的方法告诉Fabric它在嵌套执行中并使用设置堆栈或等效方法来记住状态?

谢谢!

python fabric

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

为什么烧瓶url_for太慢了

我用这段代码测试了它:

from gevent import wsgi, monkey; monkey.patch_all()
from flask import Flask, url_for

app = Flask(__name__)

@app.route('/<int:n>')
def index(n):
    for i in xrange(n):
        url = url_for('index', n=i)
    return url 

wsgi.WSGIServer(('', 8000), app).serve_forever()
Run Code Online (Sandbox Code Playgroud)

结果:

  • /1 Requests per second: 2721.94 [#/sec] (mean)
  • /10 Requests per second: 1080.16 [#/sec] (mean)
  • /100 Requests per second: 144.66 [#/sec] (mean)

python flask

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

Cython:对于类型化的内存视图,我应该使用np.float_t而不是double

关于cython中的内存视图,使用NumPy类型键入视图是否有任何优势,例如,如果我正在处理numpy浮点数组,np.float_t而不是简单地做double

我应该cdef以同样的方式输入,例如

ctypedef np.float64_t np_float_t
...

@cython.profile(False)
@cython.wraparound(False)
@cython.boundscheck(False)
cdef np_float_t mean_1d(np_float_t [:] v) nogil:
    cdef unsigned int n = v.shape[0]
    cdef np_float_t n_sum = 0.

    cdef Py_ssize_t i
    for i in range(n):
        n_sum += v[i]

    return n_sum / n
Run Code Online (Sandbox Code Playgroud)

python numpy typing cython memoryview

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

Cython:在没有NumPy数组的情况下创建内存视图?

由于我发现内存视图方便快捷,我尝试避免在cython中创建NumPy数组并使用给定数组的视图.但是,有时无法避免,不能改变现有阵列而是创建新阵列.在上层函数中,这是不明显的,但在经常被称为子例程的情况下.考虑以下功能

#@cython.profile(False)
@cython.boundscheck(False)
@cython.wraparound(False)
@cython.nonecheck(False)
cdef double [:] vec_eq(double [:] v1, int [:] v2, int cond):
    ''' Function output corresponds to v1[v2 == cond]'''
    cdef unsigned int n = v1.shape[0]
    cdef unsigned int n_ = 0
    # Size of array to create
    cdef size_t i
    for i in range(n):
        if v2[i] == cond:
            n_ += 1
    # Create array for selection
    cdef double [:] s = np.empty(n_, dtype=np_float) # Slow line
    # Copy selection to new array
    n_ = 0 …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy cython memoryview

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