来自 Streamlit 应用程序的 Python 部分并行代码
Run portion of Python code in parallel from a Streamlit app
我有一个 Streamlit 应用程序,可以将一批能源模型配置为 运行 和一个单独的代码模块,可以并行构建和 运行s 这些模型。退出代码当前使用 SCOOP (https://scoop.readthedocs.io/en/0.7/) 来处理多处理,通常 运行s 与 python -m scoop run.py
。有没有办法 运行 Streamlit 但传入那个标志?
我也尝试过使用子进程 运行 使用 SCOOP 的文件,例如:
with st.spinner('Running batch'):
p = subprocess.run(["python", "-m scoop", "run.py"])
但是这个 returns 返回代码 1 说 /venv/bin/python: No module named scoop
。 运行 这样的 SCOOP 是否可行,或者我是否需要重构才能使用 Python 内置多处理库?
对于这样的代码,您需要格外小心地指定您指的是哪个 python
p = subprocess.run(["python", "-m scoop", "run.py"])
执行此操作时,您将获得系统路径上的 Python 版本,不一定是您正在使用的 venv。
你最好运行把这条线设置为
p = subprocess.run(["/path/to/python", "-m scoop", "run.py"])
编辑:您也可以运行这样的东西来检测 Streamlit 代码 运行ning 在
下的可执行文件
subprocess.run([f"{sys.executable} ", "-m scoop", "run.py"])
我有一个 Streamlit 应用程序,可以将一批能源模型配置为 运行 和一个单独的代码模块,可以并行构建和 运行s 这些模型。退出代码当前使用 SCOOP (https://scoop.readthedocs.io/en/0.7/) 来处理多处理,通常 运行s 与 python -m scoop run.py
。有没有办法 运行 Streamlit 但传入那个标志?
我也尝试过使用子进程 运行 使用 SCOOP 的文件,例如:
with st.spinner('Running batch'):
p = subprocess.run(["python", "-m scoop", "run.py"])
但是这个 returns 返回代码 1 说 /venv/bin/python: No module named scoop
。 运行 这样的 SCOOP 是否可行,或者我是否需要重构才能使用 Python 内置多处理库?
对于这样的代码,您需要格外小心地指定您指的是哪个 python
p = subprocess.run(["python", "-m scoop", "run.py"])
执行此操作时,您将获得系统路径上的 Python 版本,不一定是您正在使用的 venv。
你最好运行把这条线设置为
p = subprocess.run(["/path/to/python", "-m scoop", "run.py"])
编辑:您也可以运行这样的东西来检测 Streamlit 代码 运行ning 在
下的可执行文件subprocess.run([f"{sys.executable} ", "-m scoop", "run.py"])