Hi, I am trying to deploy a web app using streamlit but I am having trouble getting some dependencies to work. I’m using the RDkit python package which allows to display molecules, but when I try to deploy my app, it gives me this error:
Traceback (most recent call last):
File "/home/appuser/venv/lib/python3.7/site-packages/streamlit/script_runner.py", line 338, in _run_script
exec(code, module.__dict__)
File "/app/bioinformatics-project-nn/bioactivity-prediction-app/app.py", line 7, in <module>
from rdkit.Chem import MACCSkeys, Draw
File "/home/appuser/venv/lib/python3.7/site-packages/rdkit/Chem/Draw/__init__.py", line 14, in <module>
from rdkit.Chem.Draw import rdMolDraw2D
ImportError: libXrender.so.1: cannot open shared object file: No such file or directory
Any idea how this could be solved?
Thanks in advance!
Hi @jkim1000, welcome to the Streamlit community!!
I’m sorry to hear you’re running into dependency issues on Streamlit sharing. It looks like you have discovered a bug!
The idea is that if your app.py
, requirements.txt
, and packages.txt
files are not in the root of your GitHub repo, and are instead within a folder, say, bioactivity-prediction-app/
, the dependencies from packages.txt are not installed! Moving the three files to the root of your repo should fix the issue for now.
I’ve created a bug report and brought this issue to the attention of our engineering team. I’ll update you once the issue is resolved.
For now, here’s how you can fix the import errors:
- Delete
environment.yml
- Delete
bioactivity-prediction-app/conda.txt
- Move
app.py
, packages.txt
, and requirements.txt
to the root of the repo
- Update any file paths in
app.py
to point to updated locations for data and models
- Edit
packages.txt
to contain only libxrender1
. The rdkit-pypi
package requires libxrender1
and not the other packages currently in your packages file.
- Delete your app on sharing
- Deploy a new app on sharing with the updated
app.py
Let me know if this helps!
Happy Streamlit-ing!
Snehan