Skip to main content

这是 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 (242.7 kB 查看哈希

已上传 source