AttributeError: module 'streamlit' has no attribute '_is_running_with_streamlit'. This attribute used to work properly but now it doesn't work anymore

Summary

Below codes used to work without having any problem but now it doesn’t work anymore when I upgrade my streamlit to version 1.14.0 .

Code snippet:

from streamlit.web import cli as stcli
import sys

if __name__ == '__main__':
    if st._is_running_with_streamlit:
        main()
    else:
        sys.argv = ["streamlit", "run", sys.argv[0]]
        sys.exit(stcli.main())

It will show the below problem when I try to run my program in the PyCharm IDE!

Traceback snippet:

Traceback (most recent call last):
  File "C:\Users\juroy\PycharmProjects\TikTokAnalytics\app.py", line 66, in <module>
    if st._is_running_with_streamlit:
AttributeError: module 'streamlit' has no attribute '_is_running_with_streamlit'

Debug info

  • Streamlit version: 1.14.0
  • Python version: 3.10.4
  • OS version: Windows 11
  • Browser version: Chrome 106.0.5249.119 (Official Build) (64-bit)

Links

@willhuang posted an alternative suggestion

3 Likes

Just pasting William’s solution from the GitHub issue:

You are currently using an internal API that we don’t necessarily support. I wouldn’t recommend using this.
If you would like to replace that code so that it works, I think it looks like you can use this:

from streamlit import runtime
runtime.exists()

So your code snippet from above needs to be modified to:

from streamlit.web import cli as stcli
from streamlit import runtime
import sys

if __name__ == '__main__':
    if runtime.exists():
        main()
    else:
        sys.argv = ["streamlit", "run", sys.argv[0]]
        sys.exit(stcli.main())

Happy Streamlit-ing!
Snehan :balloon:

1 Like