ElsevierSoftwareX / SOFTX-D-20-00087

pycity_scheduling - A Python framework for the development and assessment of optimization-based power scheduling algorithms for multi-energy systems in city districts. To cite this Original Software Publication: https://www.sciencedirect.com/science/article/pii/S2352711021001230
MIT License
13 stars 5 forks source link

Can´t run any example #1

Closed luiscarlospxr closed 2 years ago

luiscarlospxr commented 3 years ago

Hi team.

Always I Run a example i receive the same problem:

C:\ProgramData\Anaconda3\lib\site-packages\xlrd__init__.py in open_workbook(filename, logfile, verbosity, use_mmap, file_contents, encoding_override, formatting_info, on_demand, ragged_rows, ignore_workbook_corruption) 168 # files that xlrd can parse don't start with the expected signature. 169 if file_format and file_format != 'xls': --> 170 raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+'; not supported') 171 172 bk = open_workbook_xls

XLRDError: Excel xlsx file; not supported

I tried uploading xrld library but it didn´t work.

I really want to try your library, help me please !

vivlet commented 3 years ago

Hi Luis,

you can contact sebastian.schwarz@eonerc.rwth-aachen.de for this issue.

ss391347 commented 3 years ago

Hi!

If I see it correctly, the issue comes from the python package xlrd, which is required by the pycity_base package. So I assume that the latest xlrd version is not compatible with this version of pycity_scheduling. We will fix this in the installation requirements, thank you.

However, if you install xlrd version 1.2.0 (pip3 install xlrd==1.2.0), it should work.

Best regards, Sebastian

luiscarlospxr commented 3 years ago

Hi Sebastiàn, thank you for you fast answer.

I updated the xlrd library but it didin`t work.

I see the problem always accurs when I try to create an Apartment object, look at this:


XLRDError Traceback (most recent call last) ~\AppData\Local\Temp/ipykernel_12928/3919865937.py in 93 if name == 'main': 94 # Run example: ---> 95 main(do_plot=True)

~\AppData\Local\Temp/ipykernel_12928/3919865937.py in main(do_plot) 52 eh = ElectricalHeater(environment=e, p_th_nom=10) 53 bes.addDevice(eh) ---> 54 ap = Apartment(environment=e) 55 bd.addEntity(ap) 56 fi = FixedLoad(e, method=1, annual_demand=3000.0, profile_type='H0')

C:\ProgramData\Anaconda3\lib\site-packages\pycity_scheduling\classes\apartment.py in init(self, environment, net_floor_area, occupancy) 51 52 def init(self, environment, net_floor_area=None, occupancy=None): ---> 53 super().init(environment, net_floor_area, occupancy) 54 self._longid = "APM" + self._id_string 55

C:\ProgramData\Anaconda3\lib\site-packages\pycity_scheduling\classes\thermal_entity_cooling.py in init(self, environment, *args, kwargs) 46 47 def init(self, environment, *args, *kwargs): ---> 48 super().init(environment, args, kwargs) 49 50 self.new_var("p_th_cool")

C:\ProgramData\Anaconda3\lib\site-packages\pycity_scheduling\classes\thermal_entity_heating.py in init(self, environment, *args, kwargs) 46 47 def init(self, environment, *args, *kwargs): ---> 48 super().init(environment, args, kwargs) 49 50 self.new_var("p_th_heat")

C:\ProgramData\Anaconda3\lib\site-packages\pycity_scheduling\classes\electrical_entity.py in init(self, environment, *args, kwargs) 56 57 def init(self, environment, *args, *kwargs): ---> 58 super().init(environment, args, kwargs) 59 60 self.new_var("p_el")

C:\ProgramData\Anaconda3\lib\site-packages\pycity_scheduling\classes\optimization_entity.py in init(self, environment, *args, *kwargs) 62 if hasattr(super(), "module"): 63 # This allows ElectricalEntity and ThermalEntity to be instantiated on their own: ---> 64 super().init(environment, args, **kwargs) 65 else: 66 super().init()

C:\ProgramData\Anaconda3\lib\site-packages\pycity_base\classes\demand\apartment.py in init(self, environment, net_floor_area, occupancy) 46 daily_consumption=0, 47 supply_temperature=0) ---> 48 self.demand_space_heating = SpaceHeat.SpaceHeating(environment, 49 method=1, 50 living_area=0,

C:\ProgramData\Anaconda3\lib\site-packages\pycity_base\classes\demand\space_heating.py in init(self, environment, method, loadcurve, living_area, specific_demand, profile_type, zone_parameters, t_m_init, ventilation, t_cooling_set, t_heating_set, occupancy, appliances, lighting) 124 f_prof = os.path.join(folder, 'slp_thermal_profile_factors.xlsx') 125 f_week = os.path.join(folder, 'slp_thermal_week_day_factors.xlsx') --> 126 SpaceHeating.slp_hour = slp_th.load_hourly_factors(f_hour) 127 SpaceHeating.slp_prof = slp_th.load_profile_factors(f_prof) 128 SpaceHeating.slp_week = slp_th.load_week_day_factors(f_week)

C:\ProgramData\Anaconda3\lib\site-packages\pycity_base\functions\slp_thermal.py in load_hourly_factors(filename) 208 hourly_factors = {} 209 temperature_range = [-15, -10, -5, 0, 5, 10, 15, 20, 25, 100] --> 210 book_hourly = xlrd.open_workbook(filename) 211 212 # Iterate over all sheets

C:\ProgramData\Anaconda3\lib\site-packages\xlrd__init__.py in open_workbook(filename, logfile, verbosity, use_mmap, file_contents, encoding_override, formatting_info, on_demand, ragged_rows, ignore_workbook_corruption) 168 # files that xlrd can parse don't start with the expected signature. 169 if file_format and file_format != 'xls': --> 170 raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+'; not supported') 171 172 bk = open_workbook_xls(

XLRDError: Excel xlsx file; not supported

ss391347 commented 3 years ago

That's strange. Can you please post the output of the following command: pip3 list

luiscarlospxr commented 3 years ago

Package Version


alabaster 0.7.12 anaconda-client 1.9.0 anaconda-navigator 2.1.1 anaconda-project 0.10.1 anyio 2.2.0 appdirs 1.4.4 argh 0.26.2 argon2-cffi 20.1.0 arrow 0.13.1 asn1crypto 1.4.0 astroid 2.6.6 astropy 4.3.1 async-generator 1.10 atomicwrites 1.4.0 attrs 21.2.0 autopep8 1.5.7 Babel 2.9.1 backcall 0.2.0 backports.functools-lru-cache 1.6.4 backports.shutil-get-terminal-size 1.0.0 backports.tempfile 1.0 backports.weakref 1.0.post1 bcrypt 3.2.0 beautifulsoup4 4.10.0 binaryornot 0.4.4 bitarray 2.3.0 bkcharts 0.2 black 19.10b0 bleach 4.0.0 bokeh 2.4.1 boto 2.49.0 Bottleneck 1.3.2 brotlipy 0.7.0 cached-property 1.5.2 certifi 2021.10.8 cffi 1.14.6 chardet 4.0.0 charset-normalizer 2.0.4 click 8.0.3 cloudpickle 2.0.0 clyent 1.2.2 colorama 0.4.4 comtypes 1.1.10 conda 4.10.3 conda-build 3.21.6 conda-content-trust 0+unknown conda-pack 0.6.0 conda-package-handling 1.7.3 conda-repo-cli 1.0.4 conda-token 0.3.0 conda-verify 3.4.2 contextlib2 0.6.0.post1 cookiecutter 1.7.2 cryptography 3.4.8 cycler 0.10.0 Cython 0.29.24 cytoolz 0.11.0 daal4py 2021.3.0 dask 2021.10.0 debugpy 1.4.1 decorator 5.1.0 defusedxml 0.7.1 diff-match-patch 20200713 distributed 2021.10.0 docutils 0.17.1 entrypoints 0.3 et-xmlfile 1.1.0 fastcache 1.1.0 filelock 3.3.1 flake8 3.9.2 Flask 1.1.2 fonttools 4.25.0 fsspec 2021.10.1 future 0.18.2 gevent 21.8.0 glob2 0.7 greenlet 1.1.1 h5py 3.2.1 HeapDict 1.0.1 html5lib 1.1 idna 3.2 imagecodecs 2021.8.26 imageio 2.9.0 imagesize 1.2.0 importlib-metadata 4.8.1 inflection 0.5.1 iniconfig 1.1.1 intervaltree 3.1.0 ipykernel 6.4.1 ipython 7.29.0 ipython-genutils 0.2.0 ipywidgets 7.6.5 isort 5.9.3 itsdangerous 2.0.1 jdcal 1.4.1 jedi 0.18.0 Jinja2 2.11.3 jinja2-time 0.2.0 joblib 1.1.0 json5 0.9.6 jsonschema 3.2.0 jupyter 1.0.0 jupyter-client 6.1.12 jupyter-console 6.4.0 jupyter-core 4.8.1 jupyter-server 1.4.1 jupyterlab 3.2.1 jupyterlab-pygments 0.1.2 jupyterlab-server 2.8.2 jupyterlab-widgets 1.0.0 keyring 23.1.0 kiwisolver 1.3.1 lazy-object-proxy 1.6.0 libarchive-c 2.9 llvmlite 0.37.0 locket 0.2.1 lxml 4.6.3 MarkupSafe 1.1.1 matplotlib 3.4.3 matplotlib-inline 0.1.2 mccabe 0.6.1 menuinst 1.4.18 mistune 0.8.4 mkl-fft 1.3.1 mkl-random 1.2.2 mkl-service 2.4.0 mock 4.0.3 more-itertools 8.10.0 mpmath 1.2.1 msgpack 1.0.2 multipledispatch 0.6.0 munkres 1.1.4 mypy-extensions 0.4.3 navigator-updater 0.2.1 nbclassic 0.2.6 nbclient 0.5.3 nbconvert 6.1.0 nbformat 5.1.3 nest-asyncio 1.5.1 networkx 2.6.3 nltk 3.6.5 nose 1.3.7 notebook 6.4.5 numba 0.54.1 numexpr 2.7.3 numpy 1.20.3 numpydoc 1.1.0 olefile 0.46 openpyxl 3.0.9 packaging 21.0 pandas 1.3.4 pandocfilters 1.4.3Note: you may need to restart the kernel to use updated packages. paramiko 2.7.2 parso 0.8.2 partd 1.2.0 path 16.0.0 pathlib2 2.3.6 pathspec 0.7.0 patsy 0.5.2 pep8 1.7.1 pexpect 4.8.0 pickleshare 0.7.5 Pillow 8.4.0 pip 21.2.4 pkginfo 1.7.1 pluggy 0.13.1 ply 3.11 poyo 0.5.0 prometheus-client 0.11.0 prompt-toolkit 3.0.20 psutil 5.8.0 ptyprocess 0.7.0 py 1.10.0 pycity-base 0.3.1 pycity-scheduling 1.0.1 pycodestyle 2.7.0 pycosat 0.6.3 pycparser 2.20 pycurl 7.44.1 pydocstyle 6.1.1 pyerfa 2.0.0 pyflakes 2.3.1 Pygments 2.10.0 PyJWT 2.1.0 pylint 2.9.6 pyls-spyder 0.4.0 PyNaCl 1.4.0 pyodbc 4.0.0-unsupported Pyomo 6.2 pyOpenSSL 21.0.0 pyparsing 3.0.4 pyproj 3.2.1 pyreadline 2.1 pyrsistent 0.18.0 PySocks 1.7.1 pytest 6.2.4 pytest-mpl 0.13 python-dateutil 2.8.2 python-lsp-black 1.0.0 python-lsp-jsonrpc 1.0.0 python-lsp-server 1.2.4 python-slugify 5.0.2 pytz 2021.3 PyWavelets 1.1.1 pywin32 228 pywin32-ctypes 0.2.0 pywinpty 0.5.7 PyYAML 6.0 pyzmq 22.2.1 QDarkStyle 3.0.2 qstylizer 0.1.10 QtAwesome 1.0.2 qtconsole 5.1.1 QtPy 1.10.0 regex 2021.8.3 requests 2.26.0 richardsonpy 0.2.1 rope 0.19.0 Rtree 0.9.7 ruamel-yaml-conda 0.15.100 scikit-image 0.18.3 scikit-learn 0.24.2 scikit-learn-intelex 2021.20210714.120553 scipy 1.7.1 seaborn 0.11.2 Send2Trash 1.8.0 setuptools 58.0.4 Shapely 1.8.0 simplegeneric 0.8.1 singledispatch 3.7.0 sip 4.19.13 six 1.16.0 sniffio 1.2.0 snowballstemmer 2.1.0 sortedcollections 2.1.0 sortedcontainers 2.4.0 soupsieve 2.2.1 Sphinx 4.2.0 sphinxcontrib-applehelp 1.0.2 sphinxcontrib-devhelp 1.0.2 sphinxcontrib-htmlhelp 2.0.0 sphinxcontrib-jsmath 1.0.1 sphinxcontrib-qthelp 1.0.3 sphinxcontrib-serializinghtml 1.1.5 sphinxcontrib-websupport 1.2.4 spyder 5.1.5 spyder-kernels 2.1.3 SQLAlchemy 1.4.22 statsmodels 0.12.2 sympy 1.9 tables 3.6.1 TBB 0.2 tblib 1.7.0 terminado 0.9.4 testpath 0.5.0 text-unidecode 1.3 textdistance 4.2.1 threadpoolctl 2.2.0 three-merge 0.1.1 tifffile 2021.7.2 tinycss 0.4 toml 0.10.2 toolz 0.11.1 tornado 6.1 tqdm 4.62.3 traitlets 5.1.0 typed-ast 1.4.3 typing-extensions 3.10.0.2 uesgraphs 0.6.4 ujson 4.0.2 unicodecsv 0.14.1 Unidecode 1.2.0 urllib3 1.26.7 watchdog 2.1.3 wcwidth 0.2.5 webencodings 0.5.1 Werkzeug 2.0.2 wheel 0.37.0 whichcraft 0.6.1 widgetsnbextension 3.5.1 win-inet-pton 1.1.0 win-unicode-console 0.5 wincertstore 0.2 wrapt 1.12.1 xlrd 2.0.1 XlsxWriter 3.0.1 xlwings 0.24.9 xlwt 1.3.0 xmltodict 0.12.0 yapf 0.31.0 zict 2.0.0 zipp 3.6.0 zope.event 4.5.0 zope.interface 5.4.0

luiscarlospxr commented 3 years ago

I could solve the previous problem but now, the next problem appeared:

WARNING: Could not locate the 'scipampl' executable, which is required for solver scip

---------------------------------------------------------------------------

ApplicationError Traceback (most recent call last)

in 189 if __name__ == '__main__': 190 # Run example: --> 191 main(do_plot=True) in main(do_plot) 168 cd.set_objective("peak-shaving") 169 opt = CentralOptimization(cd) --> 170 opt.solve() 171 172 # The scheduling results obtained from the algorithm run can be (temporally) stored as follows: ~\Miniconda3\lib\site-packages\pycity_scheduling\algorithms\algorithm.py in solve(self, full_update, beta, robustness, debug) 116 results, params = self._presolve(full_update, beta, robustness, debug) 117 params["start_time"] = time.monotonic() --> 118 self._solve(results, params, debug) 119 self._postsolve(results, params, debug) 120 return results ~\Miniconda3\lib\site-packages\pycity_scheduling\algorithms\central_optimization_algorithm.py in _solve(self, results, params, debug) 80 81 def _solve(self, results, params, debug): ---> 82 self.node.solve(variables=None, debug=debug) 83 self._save_time(results, params) 84 return ~\Miniconda3\lib\site-packages\pycity_scheduling\algorithms\algorithm.py in solve(self, variables, debug) 410 result = self.solver.solve(**solve_options) 411 else: --> 412 result = self.solver.solve(self.model, **solve_options) 413 if result.solver.termination_condition != TerminationCondition.optimal or \ 414 result.solver.status != SolverStatus.ok: ~\Miniconda3\lib\site-packages\pyomo\opt\base\solvers.py in solve(self, *args, **kwds) 510 """ Solve the problem """ 511 --> 512 self.available(exception_flag=True) 513 # 514 # If the inputs are models, then validate that they have been ~\Miniconda3\lib\site-packages\pyomo\opt\solver\shellcmd.py in available(self, exception_flag) 123 if exception_flag: 124 msg = "No executable found for solver '%s'" --> 125 raise ApplicationError(msg % self.name) 126 return False 127 return True ApplicationError: No executable found for solver 'scip' **I already installed the SCIPOptSuite-7.0.3-win64-VS15.exe but it didn`t work at all. I also have installed gurobi but I dont know how to change the default solver.** Please your help !!
ss391347 commented 3 years ago

Alright, based on your package's list, I think the previous issue was caused by the wrong or missing requirements installed. But certainly, this needs to be updated in the pycity_scheduling setup.py file. We will do it soon.

For the other issue, please see https://github.com/ElsevierSoftwareX/SOFTX-D-20-00087/issues/2 .

sebuer commented 2 years ago

The correct dependencies are now required in the newest pycity_scheduling release.

Upgrade with pip install --upgrade pycity_scheduling