基于隔室模型的动态系统工具箱,包括成本和优化
项目描述
Atomica
Atomica是一个隔室模型的仿真引擎。它可以用于模拟疾病流行、医疗保健连锁反应以及许多其他事物。
有关详细文档,请访问https://atomica.tools/docs
安装
Atomica仅适用于Python 3。因为我们使用Python 3.7进行开发,因此字典顺序可能相关(尽管我们在顺序重要的地方努力使用通过Sciris
的有序字典)。因此,我们只官方支持Python 3.7,因为这是第一个保证所有字典排序的Python版本。
Atomica通过PyPI分发,PyPI版本对应于此存储库的master
分支。要通过PyPI安装,只需运行
pip install atomica
安装 numpy
、scipy
和 matplotlib
将通过 pip
自动完成,因为它们是 Atomica 的依赖项。然而,在实际操作中,这些包可能需要系统级别的配置,因此通常最好事先单独安装它们。我们推荐使用 Anaconda,它便于跨平台安装二进制文件和依赖项,如 QT。我们还建议在 Anaconda 环境中工作。
您也可能希望在安装 numpy
等之前先安装 mkl
以提高性能。例如:
conda install mkl
conda install numpy scipy matplotlib
Git 安装
如果您想安装 Atomica 的不同分支,或者计划修改 Atomica 的源代码,您需要通过 Git 而不是通过 PyPI 安装 Atomica。这可以通过以下操作完成:
git clone https://github.com/atomicateam/atomica.git
cd atomica
pip install -e .
运行测试
Atomica 包含一系列测试,其中一些会自动运行,而其他则是手动使用的。自动测试套件可以使用 pytest
执行,并且可以使用 tox
在隔离环境中运行。要使用测试,您需要按照上述步骤执行“Git 安装”,因为测试不包括在 PyPI 发行版中。安装后,您可以从 tests
目录中运行单个测试脚本,例如:
python tests/testworkflow.py
注意,许多测试会在测试过程中打开 matplotlib
图形。如果测试脚本在没有显示器的机器上运行,将会引发错误。
_tkinter.TclError: couldn't connect to display "localhost:0.0"
在这种情况下,只需将 matplotlib
后端设置为 agg
,这允许在存在显示的情况下成功调用。例如,运行:
export MPLBACKEND=agg
python tests/testworkflow.py
要运行自动套件,使用以下命令安装测试依赖项:
pip install -r requirements.txt
这将安装额外的开发依赖项。然后,要从根目录(包含 README.md
的目录)运行自动套件:
pytest
要在一个隔离的虚拟环境中运行测试,从根目录运行:
tox
如果您没有 tox
,可以使用 pip install tox
安装它。默认配置期望系统中有 Python 3.6 和 Python 3.7。要仅针对特定版本进行测试,将 Python 版本作为参数传递给 tox
,例如:
tox -e py37
仅测试 Python 3.7。
故障排除
安装失败,缺少 numpy
如果在新的环境中运行 pip install -e .
,则必须在安装 scipy
之前安装 numpy
。在某些情况下,由于缺少编译器选项,安装 numpy
可能会失败。在这种情况下,您可能希望通过 Anaconda 安装 numpy
(通过 Anaconda 安装 Python,然后使用 conda install numpy scipy matplotlib
)。一般来说,我们发现在 Anaconda 中设置 numpy
的 C 二进制文件和 matplotlib
的 QT 依赖项比通过系统(涉及每个平台上的不同步骤)要容易。
绘图挂起
在某些系统上,默认的 matplotlib
后端可能会挂起 - 这不是 Atomica 的问题。要解决这个问题,尝试在脚本非常开始处包含以下内容以更改后端:
import matplotlib
matplotlib.use("Qt5Agg")
对于您的系统可能需要不同的后端。您可以通过设置 matplotlibrc
文件来使更改持久化。
项目详情
下载文件
下载适合您平台的应用程序文件。如果您不确定该选择哪个,请了解更多关于安装包的信息。
源代码分发
构建分发
atomica-1.28.5.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ae59413cd4d0eeae7c226afdaf44a5c3f9a8459820365160cc29eb0b05bd1f69 |
|
MD5 | f1e86ab065e3126a17e36f8163711d4c |
|
BLAKE2b-256 | 7a9087e26c1692c7962ed17ee9651b0fbdff455c21986bdcc0562ef786d6e6ef |
atomica-1.28.5-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bf39dbc475493d7eb36275c5d19e4c717a8480e368782e283dd348488e7c54b8 |
|
MD5 | 9210ffae2c3ec08c8ec0823e5227422e |
|
BLAKE2b-256 | ef7e79834f700907718fd2da66b18b1e6cf32d5d1b0f39fd441f260f3d30c95e |