Pyomo and PAO + Streamlit (solver packages)

Hi Streamli Team, thx for what you have been building. Streamlit is a wonderful tool.

My question is: While trying to integrate Pyomo and PAO into my streamlit app. I got multiple errors but manage to make the app run, however, I am not sure that what I did is correct. Actually, it is prob. wrong because I am not able to use all solvers I was expecting to (i.e. Coin-or Branch and Cut Solver does not work) - a second question - should Coin-or Branch and Cut be in the requirements.txt or in the packages.txt?

The core python dependencies I was expecting to use is pyomo, pao, streamlit, plotly and shillelagh. Most of these dependencies are expected to by download and managed via Conda but the .yml file config does not work in my deployment while the .txt does.

1) Current Approach: WRONG (but it runs)

  • requirement.txt
  • packages.txt

packages.txt:

libglpk-dev
libgmp3-dev
glpk-utils

requirement.txt:

altair==4.2.2
appdirs==1.4.4
appnope==0.1.3
apsw==3.41.0.0
astroid==2.15.0
asttokens==2.2.1
attrs==21.4.0
backcall==0.2.0
backports.functools-lru-cache==1.6.4
beautifulsoup4==4.11.2
blinker==1.5
boto3==1.26.85
botocore==1.29.85
brotlipy==0.7.0
build==0.10.0
cachetools==5.3.0
certifi==2022.12.7
cffi==1.15.1
cfgv==3.3.1
charset-normalizer==2.1.1
click==8.1.3
cloudpickle==2.2.1
codespell==2.2.2
comm==0.1.2
coverage==7.2.1
cryptography==3.4.8
debugpy==1.6.6
decorator==5.1.1
dill==0.3.6
distlib==0.3.6
entrypoints==0.4
exceptiongroup==1.1.0
executing==1.2.0
fastjsonschema==2.16.3
filelock==3.9.0
freezegun==1.2.2
gitdb==4.0.10
GitPython==3.1.31
glpk==0.4.7
google-auth==2.16.2
greenlet==2.0.2
gsheetsdb==0.1.13.1
html5lib==1.1
identify==2.5.18
idna==3.4
importlib-metadata==6.0.0
importlib-resources==5.12.0
iniconfig==2.0.0
ipykernel==6.21.2
ipython==8.11.0
ipywidgets==8.0.4
isort==5.12.0
itsdangerous==2.1.2
jedi==0.18.2
Jinja2==3.1.2
jmespath==1.0.1
jsonpath-python==1.0.6
jsonschema==4.17.3
jupyter_client==8.0.3
jupyter_core==5.2.0
jupyterlab-widgets==3.0.5
lazy-object-proxy==1.9.0
markdown-it-py==2.2.0
MarkupSafe==2.1.2
matplotlib-inline==0.1.6
mccabe==0.7.0
mdurl==0.1.0
mo-dots==4.22.21108
mo-future==3.147.20327
mo-imports==3.149.20327
mo-kwargs==4.22.21108
mo-logs==4.23.21108
moz-sql-parser==4.40.21126
munch==2.5.0
nbformat==5.7.3
nest-asyncio==1.5.6
nodeenv==1.7.0
nose==1.3.7
numpy==1.24.2
packaging==23.0
pandas==1.5.3
pao==1.0.2
parso==0.8.3
pexpect==4.8.0
pickleshare==0.7.5
Pillow==9.4.0
pip==22.3.1
pip-tools==6.12.3
pkgutil_resolve_name==1.3.10
platformdirs==3.1.0
pluggy==1.0.0
ply==3.11
pooch==1.7.0
pre-commit==3.1.1
prompt-toolkit==3.0.38
protobuf==3.20.3
psutil==5.9.4
ptyprocess==0.7.0
pure-eval==0.2.2
pyarrow==8.0.0
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycparser==2.21
pydeck==0.8.0b4
pyfakefs==5.1.0
Pygments==2.14.0
pylint==2.16.4
Pympler==1.0.1
Pyomo==6.5.0
pyOpenSSL==20.0.1
pyproject_hooks==1.0.0
pyrsistent==0.19.3
PySocks==1.7.1
pytest==7.2.2
pytest-cov==4.0.0
pytest-integration==0.2.2
pytest-mock==3.10.0
python-dateutil==2.8.2
pytz==2022.7.1
pytz-deprecation-shim==0.1.0.post0
PyUtilib==6.0.0
PyYAML==6.0
pyzmq==25.0.0
requests==2.28.2
requests-cache==0.7.1
requests-mock==1.10.0
rich==13.3.2
rsa==4.9
s3transfer==0.6.0
scipy==1.10.1
semver==2.13.0
setuptools==65.6.3
shillelagh==1.2.0
six==1.16.0
smmap==3.0.5
soupsieve==2.4
SQLAlchemy==2.0.5.post1
stack-data==0.6.2
streamlit==1.19.0
tabulate==0.8.9
toml==0.10.2
tomli==2.0.1
tomlkit==0.11.6
toolz==0.12.0
tornado==6.2
traitlets==5.9.0
typing_extensions==4.4.0
tzdata==2022.7
tzlocal==4.2
url-normalize==1.4.3
urllib3==1.26.14
validators==0.20.0
virtualenv==20.20.0
watchdog==2.3.1
wcwidth==0.2.6
webencodings==0.5.1
wheel==0.38.4
widgetsnbextension==4.0.5
wrapt==1.15.0
zipp==3.15.0
plotly==5.13.1
Pyutilib==6.0.0

2) Desired Approach: (CONDA)

  • environment.yml (conda and pip)
  • Do I need a packages.txt here too?

Environment.yml:

name: envTest
channels:
  - conda-forge
  - defaults
dependencies:
  - ampl-mp=3.1.0
  - brotlipy=0.7.0
  - bzip2=1.0.8
  - ca-certificates=2022.12.7
  - certifi=2022.12.7
  - cffi=1.15.1
  - charset-normalizer=2.1.1
  - coin-or-cbc=2.10.8
  - coin-or-cgl=0.60.6
  - coin-or-clp=1.17.7
  - coin-or-osi=0.108.7
  - coin-or-utils=2.11.6
  - cryptography=39.0.2
  - glpk=5.0
  - gmp=6.2.1
  - idna=3.4
  - ipopt=3.14.11
  - libblas=3.9.0
  - libcblas=3.9.0
  - libcxx=15.0.7
  - libedit=3.1.20191231
  - libffi=3.4.2
  - libgfortran=5.0.0
  - libgfortran5=12.2.0
  - libiconv=1.17
  - liblapack=3.9.0
  - liblapacke=3.9.0
  - libopenblas=0.3.21
  - libsqlite=3.40.0
  - libzlib=1.2.13
  - llvm-openmp=16.0.0
  - metis=5.1.0
  - mumps-include=5.2.1
  - mumps-seq=5.2.1
  - munch=2.5.0
  - ncurses=6.3
  - nose=1.3.7
  - numpy=1.24.2
  - openssl=3.1.0
  - packaging=23.0
  - pao=1.0.2
  - pip=22.3.1
  - platformdirs=3.1.1
  - ply=3.11
  - pooch=1.7.0
  - pycparser=2.21
  - pyomo=6.5.0
  - pyopenssl=23.0.0
  - pysocks=1.7.1
  - python=3.11.0
  - python_abi=3.11
  - pyutilib=6.0.0
  - readline=8.1.2
  - requests=2.28.2
  - scipy=1.10.1
  - scotch=6.0.9
  - setuptools=67.6.0
  - six=1.16.0
  - tk=8.6.12
  - typing-extensions=4.5.0
  - typing_extensions=4.5.0
  - unixodbc=2.3.10
  - urllib3=1.26.15
  - wheel=0.40.0
  - xz=5.2.6
  - zlib=1.2.13
  - pip:
      - altair==4.2.2
      - apsw==3.41.0.0
      - attrs==22.2.0
      - blinker==1.5
      - cachetools==5.3.0
      - click==8.1.3
      - decorator==5.1.1
      - entrypoints==0.4
      - gitdb==4.0.10
      - gitpython==3.1.31
      - greenlet==2.0.2
      - importlib-metadata==6.1.0
      - jinja2==3.1.2
      - jsonschema==4.17.3
      - markdown-it-py==2.2.0
      - markupsafe==2.1.2
      - mdurl==0.1.2
      - pandas==1.5.3
      - pillow==9.4.0
      - plotly==5.13.1
      - protobuf==3.20.3
      - pyarrow==11.0.0
      - pydeck==0.8.0
      - pygments==2.14.0
      - pympler==1.0.1
      - pyrsistent==0.19.3
      - python-dateutil==2.8.2
      - pytz==2022.7.1
      - pytz-deprecation-shim==0.1.0.post0
      - rich==13.3.2
      - semver==2.13.0
      - shillelagh==1.2.0
      - smmap==5.0.0
      - sqlalchemy==2.0.7
      - streamlit==1.20.0
      - tenacity==8.2.2
      - toml==0.10.2
      - toolz==0.12.0
      - tornado==6.2
      - tzdata==2022.7
      - tzlocal==4.3
      - validators==0.20.0
      - zipp==3.15.0
prefix: /Users/lvicen/opt/anaconda3/envs/envTest

Hey @Lucas_Vicentim,

Can you share the error message that you’re seeing a code snippet so we can try to reproduce the issue?

It’s probably the same issue as this other post,

Apparently, the community cloud fails when you try to do anything with conda that exceeds the memory allocation, which looks to be always the case if you add conda-forge in the list of channels. This was just a hypothesis though, I haven’t seen this issue confirmed from the cloud team.

@edsaac That makes sense! I can confirm if you’d like to share the link to the app, @Lucas_Vicentim (I can check the resource usage)

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.