mmcguffi / pLannotate

Webserver and command line tool for annotating engineered plasmids
GNU General Public License v3.0
97 stars 20 forks source link

ModuleNotFoundError: No module named 'streamlit.cli' #17

Closed sciguy closed 1 year ago

sciguy commented 1 year ago

Trying to run pLannotate via conda and I get the error:

ModuleNotFoundError: No module named 'streamlit.cli'

After a little digging it looks like the streamlit.cli module was moved to streamlit.web.cli in the newer versions of streamlit.

I suggest changing the import or locking the streamlit version to an earlier version.

It worked for me when I used streamlit version 1.10.0

mmcguffi commented 1 year ago

Sorry for the slow reply on this -- this issue has cropped up off and on again due to some issues with how Streamlit interfaces with Click. Best as I can tell Streamlit periodically fixes these compatibility issues with patches to minor releases, though it appears this continues to be an issue.

Thanks for notifying me on this. I'll take a look into your suggestions and see what makes the most sense, though perhaps removing Click from pLannotate entirely might be cleanest option.

Were you able to get it to run by manually changing the Streamlit version after a conda install of pLannotate? I just tried a fresh mamba install of pLannotate and that seems to work fine on my end.

sciguy commented 1 year ago

I got it to work by using a conda env file that set the version of streamlit to 1.10.0.

conda.env.yaml:

name: plannotate-env
channels:
  - conda-forge
  - bioconda
dependencies:
  - streamlit=1.10.0
  - plannotate=1.2.0

Then I used it to install pLannotate: conda env create -f conda.env.yaml

nickcolossal commented 1 year ago

I ended up replacing streamlit.cli with streamlit.web.cli in plannotate/pLannotate.py https://github.com/streamlit/streamlit/issues/5146#issuecomment-1223306586

jeffreybarrick commented 1 year ago

Thanks for the fix for when we get to updating to be compatible with a newer version of streamlit!

For now, the environment.yml for use with conda will pin the streamlit version to an older version so things will stop breaking when this and other packages are updated.