这是 David Hendriks、Rob Izzard 和合作者的 binary_c(版本 2.1.7、2.2pre1、2.2.0、2.2.1)的 python API。基于 Jeff andrews 的初始设置。
项目描述
binary_c 的 Python 模块
我们展示了我们的包binary-c-python,这是一个种群综合代码,旨在为binary_c框架提供一个方便易用的接口,允许用户快速演化单个恒星系统和恒星系统种群。基于 Jeff Andrews 的早期作品。由 David Hendriks、Robert Izzard 为 Python3 更新和扩展。
binary_c-python 是为恒星天体物理学领域的学生和科学家开发的,他们想要研究单个和双星系统的个体或群体的演化(参见在线文档中的示例用例笔记本。
当前版本是 version version,设计和测试可与 binary_c 版本 2.2.1 一起使用(对于较旧或较新的版本,我们不能保证正确的行为)。
当前的开发分支是development_0.9.5/2.2.1.
安装
要安装 binary_c-python,我们需要确保我们满足安装要求,并且
Python 要求
要运行此代码,您至少需要安装:
- Python 3.7 或更高版本(3.6 已停产,我们正在使用 3.9 进行开发)
- binary_c 2.2.0 或更高版本
此代码运行所需的包在 requirements.txt 中列出,由 setup.py 自动读取
环境变量
在编译之前你需要有一定的环境变量:
必需的:
BINARY_C应该指向你的 binary_c 安装的根目录LD_LIBRARY_PATH应该包括 $BINARY_C/src 和运行 binary_c 所需的任何目录(例如 libgsl、libmemoize、librinterpolate 等的位置)LIBRARY_PATH应该包括构建 binary_c 所需的任何目录(例如 libgsl、libmemoize、librinterpolate 等的位置)GSL_DIR应该指向您安装 GSL 的根位置。此根目录应包含bin/等lib/
构建说明
首先,确保您已经构建了 binary_c(请参阅$BINARY_C/doc/binary_c2.pdf安装部分以了解所有安装说明binary_c))并且它可以正常运行。
通过 PIP 安装:
要通过 pip 安装此软件包:
pip install binarycpython
这将安装 Pip 上可用的最新稳定安装。master 分支上的版本应该与 Pip 上最新的稳定版本相同
从源安装:
我们还可以从源代码安装包,这对于开发版本和您想要修改代码时很有用。建议您将其安装到虚拟环境中。从commands/目录中,运行
./install.sh
这会将包连同所有依赖项一起安装到当前活动的(虚拟)python 环境中。
从源安装后
通过源代码安装代码后,在使用它进行任何编程之前运行测试套件很有用。测试套件存储在binarycpython/tests其中并python main.py在其中运行将运行所有测试。
无需安装即可使用代码
因为安装binary_c-python需要 的工作安装binary_c,所以通过 pip 或从源安装没有这个工作安装binary_c将不起作用。要仍然使用 提供的某些功能binary_c-python,您可以将代码库的路径添加到您的PYTHONPATH:
- 下载
binary_c-python,例如git clone https://gitlab.com/binary_c/binary_c-python.git $PYTHONPATH通过例如将下载的存储库的路径添加到您的export PYTHONPATH="~/binary_c-python:$PYTHONPATH"
用法
例子
请参阅示例/目录以获取示例脚本和笔记本。该文档还包含示例页面。
使用说明
确保在每次更改/重新编译时binary_c,您也重建了这个包。每当您更改此软件包的源代码时,您也需要将其重新安装到您的虚拟环境中
文档
查看 docs/ 目录。在 build/html/ 中有文档的 html 版本。该文档还托管在http://personal.ph.surrey.ac.uk/~ri0005/doc/binary_c/binary_c.html上,但仅适用于最新的稳定版本。
发展:
如果您想为代码做出贡献,那么建议您将软件包安装在development_requirements.txt:
pip install -r development_requirements.txt
请随时与我们联系以讨论任何进展。
生成文档
要手动构建文档,请运行
./generate_docs.sh
从commands/目录中
生成文档字符串和测试覆盖率报告
要生成单元测试和文档字符串覆盖率报告,请运行
./generate_reports.sh
从commands/目录中
运行单元测试
一般单元测试有两个版本。第一个仅包含项目的实际代码,位于binarycpython/test/main.py. 第二个包括教程笔记本,位于binarycpython/test/main_with_notebooks.py. 只运行笔记本测试运行python binarycpython/tests/test_notebooks.py
拉 JOSS 论文文章 repo
我们为 编写了一篇 JOSS 论文binary_c-python,该论文存储在https://gitlab.com/dhendriks/paper_joss_binarycpython中,但也作为子模块添加到此存储库中。要将 repo 初始化并作为子模块拉取,请运行
git submodule update --init --recursive
常见问题解答/问题:
在这里,我们提供了一些我们遇到的问题和解决方案的非详尽列表:
binary_c 本身的构建问题:
- 请参阅 binary_c 的文档(在 doc/ 中)。
- 如果您安装了 MESA,请确保
$MESASDK_ROOT/bin/mesasdk_init.sh不是来源。它带有自己的某些程序版本,这些程序可能会干扰安装。
当 Pip 安装失败时:
- 运行安装
-v和/或--log <logfile>获取更多信息 - 如果 gcc 抛出类似的错误
gcc: error: unrecognized command line option ‘-ftz’; did you mean ‘-flto’?,这可能是由于该系统上的 python 是使用不同的编译器构建的。然后它将 python3.6-config --cflags 传递给 binarycpython 安装,如果使用 gcc 完成,它将不起作用。尝试不同的python3.6。我建议使用pyenv来管理 python 版本。如果无法使用 pyenv 安装 python 版本,请尝试使用与 binary_c 相同的编译器构建的机器可用的 python 版本。 - 如果 pip 安装结果
No files/directories in /tmp/pip-1ckzg0p9-build/pip-egg-info (from PKG-INFO),请尝试运行它详细 (-v) 以查看实际出了什么问题。 - 如果 pip 以错误 FileNotFoundError: [Errno 2] No such file or directory: '<...>/binary_c-config' 终止,然后确保您的主 $BINARY_C 目录的路径设置正确。
其他:
- 运行 jupyter notebooks 时,请确保从相同的虚拟环境运行 jupyter 安装。
- 当 binary_c 的输出似乎与预期不同时,您可能需要重新构建这个 python 包。每次编译 binary_c 时,也需要重新构建这个包。
项目详情
binarycpython -0.9.4.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 6b590af612b7bac70e6ad534b296f5c7d8471d65894656b6b8517f72d2e7f92f |
|
| MD5 | d30a8c321a908f0422ee8adf98ecf290 |
|
| 布莱克2-256 | ebaf8ee641a92194a0bdf7c490c70d83e90b3fde63b670921798e53ed7c74d77 |