对于我的scrapy项目,我目前正在使用ImagesPipeline.下载的图像以其URL 的SHA1哈希值存储为文件名.
如何使用我自己的自定义文件名来存储文件?
如果我的自定义文件名需要包含同一项中的另一个已删除字段,该怎么办?例如,使用item['desc']图像和文件名item['image_url'].如果我理解正确,那将涉及以某种方式访问图像管道中的其他项目字段.
任何帮助将不胜感激.
Celery包含一个能够使用amqp或其他一些芹菜后端发出异步HTTP请求的模块.我正在使用tornado-celery生产者进行异步消息发布.据我所知,龙卷风芹菜使用鼠兔为此.问题是如何使celery.task.http.URL适应龙卷风(使其无阻塞).基本上有两个地方需要改进:
HttpDispatch.make_request() 必须使用tornado async http客户端实现;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脚本的文件夹中有一个批处理文件.批处理文件应该调用脚本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) 我目前有一个文件,其中包含一个看起来像的列表
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 ..谢谢
当我读取一些代码时,对于整数,它们使用一堆不同类型的size_t, uint32, uint64等等.这样做的动机或目的是什么?为什么不用int?与平台交叉相关?或低级相关.
有时,代码对我有意义,因为他们只需要32位int或其他东西.但是,是什么size_t?请帮我说清楚.
我正在帮助开发一个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的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它在嵌套执行中并使用设置堆栈或等效方法来记住状态?
谢谢!
我用这段代码测试了它:
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)关于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) 由于我发现内存视图方便快捷,我尝试避免在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 ×8
cython ×2
memoryview ×2
numpy ×2
arrays ×1
asynchronous ×1
c ×1
celery ×1
fabric ×1
flask ×1
inline ×1
ipython ×1
matplotlib ×1
nltk ×1
nonblocking ×1
phonon ×1
pyqt4 ×1
python-2.7 ×1
scrapy ×1
text ×1
tornado ×1
typing ×1
vlc ×1