小编Mar*_*ark的帖子

从PIL图像或StringIO将图像插入到Reportlab中

我正在尝试将条形码图像插入到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)

python reportlab python-imaging-library

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

在Fabric中切换用户

使用Fabric模仿我的SSH工作流来部署我的Web应用程序时遇到问题.

当我通过SSH连接到服务器时,这是我常用的命令流:

  1. SSH使用root用户.ssh root@1.2.3.4
  2. 切换到网络用户:su - web
  3. 更改目录:cd/srv/web/prod/abc_project
  4. 启动virtualenv:workon abc_env
  5. 执行git pull:git pull origin master
  6. 运行脚本:build_stuff -m build
  7. 运行另一个脚本:./ run

我尝试将其写为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)

python fabric

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

如何使用Apache Rewrite将用户重定向到完全限定的域名?

我是apache mod_rewrite模块的新手.http://abc我的公司内部网有一个页面.我希望用户http://abc.somecompanyname.com在键入http://abcURL栏时被重定向到.有人可以提供和示例或指出我正确的方向.

我认为这应该是一个很容易回答的问题.谢谢大家的投入.

-标记

apache mod-rewrite

9
推荐指数
2
解决办法
8797
查看次数

金字塔资源:用简单的英语

我一直在阅读有关实现授权(和身份验证)到我新创建的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).

提前致谢.

python pyramid couchdb-python

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

jQuery UI 1.7.3 datepicker与date.js冲突导致"过多的递归"?

我正在尝试在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正在呕吐.我在过去处理过多的递归问题时遇到了类似的问题,但我不知道如何解决这些错误.

有谁能告诉我这是怎么回事?

javascript jquery-ui jquery-ui-datepicker

7
推荐指数
1
解决办法
3715
查看次数

将pyBarcode输出转换为PIL图像文件

我试图将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)

我确定我非常接近答案,我只需要别人的指导.先谢谢你们!

python python-imaging-library

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

如何在Pyramid模板中检查经过身份验证的用户?

我正在使用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

python mako pyramid

5
推荐指数
1
解决办法
1887
查看次数

Twitter Bootstrap输入在行流体上附加中断

我正在使用Twitter Bootstrap以及它们的响应风格.我在输入附加方面遇到了一些问题,并在输入的末尾添加了"%".我意识到从"行液"中删除"-fluid"可以解决这个问题.

  1. 可以在div.container-fluid中使用div.row吗?
  2. 怎么可以修复:http://jsfiddle.net/zhenghao1/svrec/

在此先感谢大家!

css twitter-bootstrap

5
推荐指数
1
解决办法
4139
查看次数

ElasticSearch:查找具有数组中字段值的文档

我有一些客户文档,我希望根据客户的来源(国家/地区字段位于国家/地区数组中)使用 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 似乎只检查字段是否存在,但不关心值。

python elasticsearch pyes

5
推荐指数
1
解决办法
5999
查看次数

在ZSH中设置环境变量给出了预期的数量

我正在尝试在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提示符中.可能是什么问题呢?

zsh

5
推荐指数
1
解决办法
5012
查看次数