pyreport和jasperpy,我在运行代码时出错

时间:2017-07-12 09:24:46

标签: python python-2.7 jasper-reports pyreport

我是python的新手,我在github上找到了这个项目" https://github.com/jadsonbr/pyreport",我想从mysql服务器打印发票。我安装了pyreport和jasperpy,但是当我尝试运行代码时,我收到了这个错误:

Traceback (most recent call last):
  File "E:/onedrive/Documents/optimpos/module/fact_print.py", line 36, in <module>
    compiling()
  File "E:/onedrive/Documents/optimpos/module/fact_print.py", line 9, in compiling
    jasper = pyjasper.JasperPy()
AttributeError: 'module' object has no attribute 'JasperPy'

我的fact_print.py看起来像这样:

import os,sys,subprocess
from platform import python_version
import pyjasper
sys.stderr = open("errlog.txt", "w")

def compiling():
    input_file = os.path.dirname(os.path.abspath(__file__)) + \
                 '/Invoice_2.jrxml'
    jasper = pyjasper.JasperPy()
    jasper.compile(input_file)

def advanced_example_using_database():
    input_file = os.path.dirname(os.path.abspath(__file__)) + \
                 '/Invoice_2.jrxml'
    output = os.path.dirname(os.path.abspath(__file__)) + '/'
    con = {
        'driver': 'mysql',
        'username': 'admin1',
        'password': 'marcopolo',
        'host': 'localhost',
        'database': 'optimpos',
        'schema': 'temp_vanzari',
        'port': '3306'
    }
    jasper = pyjasper.JasperPy()
    jasper.process(
        input_file,
        output_file=output,
        format_list=["pdf", "rtf", "xml"],
        parameters={'python_version': python_version()},
        db_connection=con,
        locale='en_US'  # LOCALE Ex.:(en_US, de_GE)
    )
    print("done printing")

这可能是一个简单的答案,但我无法找到pyjasper.JasperPy()为什么不起作用的原因。我正在使用pyhton 2.7

这只是一个测试代码,mysql服务器只是用于测试。 需要一些帮助,谢谢

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。 Git页面上的教程令人困惑,我的印象是我可以直接从克隆的repo pyjasper/导入。我的解决方案是:

  来自pyjasper.jasperpy的

导入JasperPy

一旦我这样做,我就能继续学习本教程。