First time here? Check our help page!
2

Problem running an E+ simulation with Python

I'm trying to run a simulation using Python. This is my code, after trying several times, but I get an error. Can you help me to solve it?:

import sys
sys.path.insert(0, 'C:\EnergyPlusV9-3-0') #sys.path.insert(0, '/path/to/EnergyPlusInstallRoot')
from pyenergyplus import api
from pyenergyplus.api import EnergyPlusAPI
from runtime import Runtime


"""
run_energyplus(['-d', '/path/to/output/directory', '-w', '/path/to/weather.epw', '/path/to/input.idf'])
"""
test = Runtime(api)

test.run_energyplus(
  [
    '-d',
    'C:/Users/vicente.castillo/Documents/24_PROYECTO SERGIO/prueba Pyenergyplus/output_prueba',
    '-w',
    'C:/EnergyPlusV9-3-0/ejemplo ENERGY PLUS test_2/USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw',
    'C:/EnergyPlusV9-3-0/ejemplo ENERGY PLUS test_2/5ZoneAirCooled.idf'
  ]
)

Output:

Traceback (most recent call last):
  File "prueba.py", line 15, in <module>
    test = Runtime(api)
  File "C:\Users\vicente.castillo\Documents\24_PROYECTO SERGIO\prueba Pyenergyplus\runtime.py", line 26, in __init__
    self.api.energyplus.restype = c_int
AttributeError: module 'pyenergyplus.api' has no attribute 'energyplus'
VicenteCastilloGuillen's avatar
101
VicenteCastilloGuillen
asked 2020-07-30 12:33:20 -0500
Aaron Boranian's avatar
14.1k
Aaron Boranian
updated 2020-07-30 14:42:46 -0500
edit flag offensive 0 remove flag close merge delete

Comments

1

Are you using the initial release or the latest bug fix release for EnergyPlus v9.3? There were some issues with the Python modules and APIs that were fixed in the bug fix release.

Aaron Boranian's avatar Aaron Boranian (2020-07-30 14:44:40 -0500) edit

First I used the initial release, and now (after your comment) I tried it with the latest bug fix release, and still got the same problem.

VicenteCastilloGuillen's avatar VicenteCastilloGuillen (2020-07-31 04:42:43 -0500) edit
add a comment see more comments

1 Answer

2

The following works for me:

from pyenergyplus.api import EnergyPlusAPI
api = EnergyPlusAPI()
api.runtime.run_energyplus(["your", "params", "here"])

I did not get why you need to from runtime import Runtime.

leijerry888's avatar
36
leijerry888
answered 2020-08-24 16:59:15 -0500
edit flag offensive 0 remove flag delete link

Comments

This gives me the error TypeError: run_energyplus() missing 1 required positional argument: 'command_line_args', have you come across this?

sajithwjay's avatar sajithwjay (2020-10-11 17:27:01 -0500) edit

You probably have solved this question by now but I came across it when I am trying to get info on Python plugins and I thought I should post this comment while passing through.

In your api.runtime.run_energyplus call, You need to include "state" as the first argument. You create it by:

state = api.state_manager.new_state()
api.runtime.run_energyplus(state, ["your", "params", "here"])

The above syntax works for me for normal IDF files. However, it fails when I try to use python plugins. This is what I am trying to sort out now.

My EP version is 9.5.0

halimgur's avatar halimgur (2021-11-30 00:58:45 -0500) edit
add a comment see more comments