我正在尝试将条形码图像插入到Reportlab中.我知道有很多问题要问这个,但是他们都认为你已经在目录或文件系统中有了图像文件.
由于Reportlab存在EAN13条形码问题,我决定使用另一个名为pyBarcode的包来为我生成图像.
最初我将图像保存在StringIO实例中并直接传递给它,reportlab.platypus.flowables.Image但似乎没有用.然后我阅读了文档:
支持PIL/Java 1.4(Python/Java Imaging Library)支持的格式.
这是否意味着如果我传递PIL图像,这应该有用吗?我尝试以下操作时遇到异常:
>>> import PIL
>>> from reportlab.platypus.flowables import Image
>>> fp = StringIO(the_barcode.getvalue())
>>> barcode_image = PIL.Image.open(fp)
>>> doc = SimpleDocTemplate('barcode.pdf')
>>> story = [Image(barcode_image)]
>>> Traceback (most recent call last):
File "create.py", line 57, in <module>
main()
File "create.py", line 24, in main
save_pdf(fp, STYLE, ART, COLOR, SIZE)
File "create.py", line 28, in save_pdf
fp = StringIO(fp.getvalue())
File "/home/mark/.virtualenvs/barcode/local/lib/python2.7/site-packages/reportlab-2.6-py2.7-linux-i686.egg/reportlab/platypus/flowables.py", line 402, in __init__
if not fp and os.path.splitext(filename)[1] …Run Code Online (Sandbox Code Playgroud) 使用Fabric模仿我的SSH工作流来部署我的Web应用程序时遇到问题.
当我通过SSH连接到服务器时,这是我常用的命令流:
我尝试将其写为Fabric中的部署脚本,并在输入su-web时获得shell输出.我必须按Ctrl-D继续脚本.我也无法激活我的virtualenv ....因为:su - web成功切换用户web但由于Ctrl-d(以便我可以继续Fabric脚本),它会退出该用户并返回到root .
这是我的脚本:
env.user = 'root'
@roles('web')
def deploy():
dev_path = '/srv/web/prod'
app_path = '/srv/web/prod/rhino'
workon = 'workon rhino_env'
with prefix('su - web'):
puts('Switched to `web` user')
with settings(warn_only=True):
run('kill -9 `cat /srv/web/run/rhino/rhino.pid`')
puts('Stopped rhino...')
with cd(app_path):
run('git reset --hard HEAD')
puts('Discarded all untracked and modified files')
run('git checkout master')
run('git pull origin master')
users …Run Code Online (Sandbox Code Playgroud) 我是apache mod_rewrite模块的新手.http://abc我的公司内部网有一个页面.我希望用户http://abc.somecompanyname.com在键入http://abcURL栏时被重定向到.有人可以提供和示例或指出我正确的方向.
我认为这应该是一个很容易回答的问题.谢谢大家的投入.
-标记
我一直在阅读有关实现授权(和身份验证)到我新创建的Pyramid应用程序的方法.我不断碰到名为"资源"的概念.我在我的应用程序中使用python-couchdb而根本不使用RDBMS,因此没有SQLAlchemy.如果我像这样创建一个Product对象:
class Product(mapping.Document):
item = mapping.TextField()
name = mapping.TextField()
sizes = mapping.ListField()
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我这是否也被称为资源?我一直在阅读金字塔的整个文档,但没有在哪里用简单的英语解释术语资源(也许我只是愚蠢).如果这是资源,这是否意味着我只是将我的ACL内容粘贴在这里:
class Product(mapping.Document):
__acl__ = [(Allow, AUTHENTICATED, 'view')]
item = mapping.TextField()
name = mapping.TextField()
sizes = mapping.ListField()
def __getitem__(self, key):
return <something>
Run Code Online (Sandbox Code Playgroud)
如果我也使用Traversal,这是否意味着我在我的python-couchdb产品类/资源中添加了getitem函数?
对不起,这真的让所有新条款感到困惑(我来自Pylons 0.9.7).
提前致谢.
我正在尝试在jQuery UI对话框中使用jQuery UI 1.7.3 datepicker小部件.对话框的内容来自页面模板,其中包含制作页面功能所需的各种javascript导入.我还导入的一件事是着名的date.js文件.
我在对话框中加载的这个页面本身也作为独立页面存在.日期选择器就像一个魅力.当我在对话框中加载它时,一切都会中断.当焦点指向日期输入字段时,应显示日期选择器.但是,我得到一个令人作呕的错误:
too much recursion
[Break on this error] return w;};Date.prototype.isDST=function...ase"z":return"";}}):this._toString();};\n
Run Code Online (Sandbox Code Playgroud)
datepicker日历没有显示,我在我的firebug中得到1个错误,说它date.js正在呕吐.我在过去处理过多的递归问题时遇到了类似的问题,但我不知道如何解决这些错误.
有谁能告诉我这是怎么回事?
我试图将pyBarcode的输出转换为PIL图像文件,而无需先保存图像.首先,pyBarcode生成一个像这样的图像文件:
>>> import barcode
>>> from barcode.writer import ImageWriter
>>> ean = barcode.get_barcode('ean', '123456789102', writer=ImageWriter())
>>> filename = ean.save('ean13')
>>> filename
u'ean13.png'
Run Code Online (Sandbox Code Playgroud)
如您所见,我不希望图像实际保存在我的文件系统上,因为我希望将输出处理为PIL图像.所以我做了一些修改:
i = StringIO()
ean = barcode.get_barcode('ean', '123456789102', writer=ImageWriter())
ean.write(i)
Run Code Online (Sandbox Code Playgroud)
现在我有一个StringIO文件对象,我希望PIL"读取"它并将其转换为PIL图像文件.我想使用Image.new或者Image.frombuffer这两个函数都要求我输入一个大小......不能通过条形码StringIO数据来确定大小吗? Image.open在他们的文档中说明:
您可以使用字符串(表示文件名)或文件对象.在后一种情况下,文件对象必须实现read,seek和tell方法,并以二进制模式打开
StringIO实例也不是文件对象吗?如何将其作为二进制文件打开?
Image.open(i, 'rb')
>>> Image.open(i, 'rb')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/mark/.virtualenvs/barcode/local/lib/python2.7/site-packages/PIL/Image.py", line 1947, in open
raise ValueError("bad mode")
ValueError: bad mode
Run Code Online (Sandbox Code Playgroud)
我确定我非常接近答案,我只需要别人的指导.先谢谢你们!
我正在使用Pyramid 1.3b和Mako模板.我有一个基本模板,根据用户是否登录显示一些导航组件.我是这样做的:
<%!
from pyramid.security import authenticated_userid
def is_authenticated(request):
return authenticated_userid(request)
%>
% if is_authenticated(request):
<!-- 2 Column -->
<div class="row-fluid main-content">
<div class="span2">
<ul class="nav nav-list">
<li class="nav-header">
Company A
</li>
<li class="active"><a herf="/product/add">Product</a></li>
<li><a href="#">Order</a></li>
</ul>
</div>
<div class="span10">
${self.body()}
</div>
</div>
<!-- End of 2 column -->
% else:
${self.body()}
% endif
Run Code Online (Sandbox Code Playgroud)
因此,如果用户已登录,我将尝试显示两列布局,如果用户未登录,则只显示100%宽度div.
我正在使用顶部定义的代码块来检查用户是否经过身份验证.我想知道在金字塔中有更好的方法吗?
此致,Mark Huang
我正在使用Twitter Bootstrap以及它们的响应风格.我在输入附加方面遇到了一些问题,并在输入的末尾添加了"%".我意识到从"行液"中删除"-fluid"可以解决这个问题.
在此先感谢大家!
我有一些客户文档,我希望根据客户的来源(国家/地区字段位于国家/地区数组中)使用 ElasticSearch 检索这些文档。
[
{
"name": "A1",
"address": {
"street": "1 Downing Street"
"country": {
"code": "GB",
"name": "United Kingdom"
}
}
},
{
"name": "A2",
"address": {
"street": "25 Gormut Street"
"country": {
"code": "FR",
"name": "France"
}
}
},
{
"name": "A3",
"address": {
"street": "Bonjour Street"
"country": {
"code": "FR",
"name": "France"
}
}
}
]
Run Code Online (Sandbox Code Playgroud)
现在,我的 Python 代码中有另一个数组:
["DE", "FR", "IT"]
Run Code Online (Sandbox Code Playgroud)
我想要获得 A2 和 A3 两份文件。
我该如何在 PyES/Query DSL 中编写这个?我应该为此使用 ExistsFilter 或 TermQuery 吗?ExistsFilter 似乎只检查字段是否存在,但不关心值。
我正在尝试在ZSH中设置一个数组(使用oh-my-zsh配置).
export AR=(localhost:1919 localhost:1918)
Run Code Online (Sandbox Code Playgroud)
但我得到一个像这样的错误:
zsh: number expected
Run Code Online (Sandbox Code Playgroud)
如果我不添加导出命令,那就没问题了.我没有在*rc文件中输入上述内容,只是在zsh提示符中.可能是什么问题呢?