有关作者列表,请参阅 AUTHORS 文件。
还有更多的人在 SymPy 邮件列表上提供帮助、报告错误、帮助组织 SymPy 参与 Google Summer of Code、Google 高度开放参与竞赛、Google Code-In、撰写有关 SymPy 的文章并撰写博客……
许可证:除非另有说明,新的 BSD 许可证(有关详细信息,请参阅许可证文件)涵盖 sympy 存储库中的所有文件。
我们的邮件列表位于 https://groups.google.com/forum/?fromgroups#!forum/sympy。
我们在 Gitter 进行了社区聊天。请随时向我们询问任何问题。我们有一个非常热情和乐于助人的社区。
推荐的安装方法是通过Anaconda,https://www.anaconda.com/products/distribution
您还可以从 https://pypi.python.org/pypi/sympy/ 获取最新版本的 SymPy
要获取 git 版本,请执行以下操作
$ git clone https://github.com/sympy/sympy.git
有关其他选项(tarball、deb 等),请参阅 https://docs.sympy.org/dev/install.html。
有关安装和构建文档的深入说明,请参阅 SymPy 文档风格指南。
一切都在:
https://docs.sympy.org/
您可以通过以下方式在本地 SymPy 副本中生成上述站点的所有内容:
$ cd doc
$ make html
然后文档将位于_build/html中。如果您不想阅读,这里有一个简短的用法:
从该目录启动 Python 并:
> >> from sympy import Symbol , cos
> >> x = Symbol ( 'x' )
> >> e = 1 / cos ( x )
> >> print ( e . series ( x , 0 , 10 ))
1 + x ** 2 / 2 + 5 * x ** 4 / 24 + 61 * x ** 6 / 720 + 277 * x ** 8 / 8064 + O ( x ** 10 )
SymPy 还附带一个控制台,它是经典 python 控制台(或可用的 IPython)的简单包装器,可加载 SymPy 命名空间并为您执行一些常用命令。
要启动它,请发出:
$ bin/isympy
如果未安装 SymPy 或只是从该目录中执行以下操作:
$ isympy
如果安装了 SymPy。
要使用 PyPI 安装 SymPy,请运行以下命令:
$ pip install sympy
要使用 Anaconda 安装 SymPy,请运行以下命令:
$ conda install -c anaconda sympy
要从 GitHub 源安装 SymPy,首先使用git
克隆 SymPy:
$ git clone https://github.com/sympy/sympy.git
然后,在您克隆的sympy
存储库中,只需运行:
$ pip install .
请参阅 https://docs.sympy.org/dev/install.html 了解更多信息。
我们欢迎任何人的贡献,即使您是开源新手。请阅读我们的贡献简介页面和 SymPy 文档风格指南。如果您是新手并且正在寻找某种方式做出贡献,那么查看标记为“易于修复”的问题是一个不错的起点。
请注意,该项目的所有参与者都应遵守我们的行为准则。参与该项目即表示您同意遵守其条款。请参阅 CODE_OF_CONDUCT.md。
要执行所有测试,请运行:
$./setup.py test
在当前目录中。
要更细粒度地运行测试或文档测试,请分别使用bin/test
或bin/doctest
。 master 分支由 GitHub Actions 自动测试。
要测试拉取请求,请使用 sympy-bot。
解析器和词法分析器是使用sympy/parsing/latex/_antlr
中的 ANTLR4 工具链生成的,并签入存储库中。目前,大多数用户不需要重新生成这些文件,但如果您打算使用此功能,则需要antlr4
命令行工具(并且必须确保它位于您的PATH
中)。获得它的一种方法是:
$ conda install -c conda-forge antlr=4.11.1
或者,按照 ANTLR 网站上的说明下载antlr-4.11.1-complete.jar
。然后按照指示导出CLASSPATH
,而不是创建antlr4
作为别名,而是将其设为具有以下内容的可执行文件:
#! /bin/bash
java -jar /usr/local/lib/antlr-4.11.1-complete.jar " $@ "
对sympy/parsing/latex/LaTeX.g4
进行更改后,运行:
$ ./setup.py antlr
清理所有内容(从而获得与存储库中相同的树):
$ git clean -Xdf
这将清除.gitignore
忽略的所有内容,并且:
$ git clean -df
清除所有未跟踪的文件。您可以使用以下命令恢复 git 中的最新更改:
$ git reset --hard
警告:上述命令将清除您可能所做的所有更改,并且您将永远失去它们。在执行任何操作之前,请务必使用git status
、 git diff
、 git clean -Xn
和git clean -n
检查内容。
我们的问题跟踪器位于 https://github.com/sympy/sympy/issues。请报告您发现的任何错误。或者,更好的是,在 GitHub 上分叉存储库并创建拉取请求。我们欢迎所有的更改,无论大小,如果您是 git 新手,我们将帮助您提出拉取请求(只需在我们的邮件列表或 Gitter 频道上询问)。如果您还有任何疑问,可以使用 sympy 标签在 Stack Overflow 上找到答案。
SymPy 由 Ondřej Čertík 于 2005 年创建,他在夏天编写了一些代码,然后在 2006 年夏天编写了更多代码。2007 年 2 月,Fabian Pedregosa 加入了该项目,帮助修复了许多问题,贡献了文档,并使其再次活跃起来。 。 2007 年夏天,作为 Google 代码之夏的一部分,5 名学生(Mateusz Paprocki、Brian Jorgensen、Jason Gedge、Robert Schwarz 和 Chris Wu)极大地改进了 SymPy。 Pearu Peterson 在 2007 年夏天加入了开发,他从头开始重写核心,使 SymPy 更具竞争力,速度从 10 倍到 100 倍。 Jurjen NE Bos 贡献了漂亮的印刷和其他补丁。 Fredrik Johansson 编写了 mpmath 并贡献了很多补丁。
自 2007 年以来,SymPy 参加了每一届 Google Summer of Code。您可以访问 https://github.com/sympy/sympy/wiki#google-summer-of-code 了解完整详细信息。 SymPy 每年都在不断进步。 SymPy 的大部分开发来自 Google Summer of Code 的学生。
2011 年,Ondřej Čertík 辞去了首席开发人员的职务,接替他的是同样是 Google Summer of Code 学生的 Aaron Meurer。 Ondřej Čertík 仍然活跃在社区中,但忙于工作和家庭,无法发挥领导发展的作用。
从那时起,更多的人加入了开发,也有人离开了。您可以在 doc/src/aboutus.rst 中查看完整列表,或在线访问:
https://docs.sympy.org/dev/aboutus.html#sympy-development-team
git 的历史可以追溯到 2007 年,当时开发从 svn 转向 hg。要查看该点之前的历史记录,请查看 https://github.com/sympy/sympy-old。
您可以使用 git 查看最大的开发人员。命令:
$ git shortlog -ns
将显示每个开发人员,按项目提交排序。命令:
$ git shortlog -ns --since="1 year"
将展示去年的顶级开发商。
在出版物中引用 SymPy 使用
Meurer A、Smith CP、Paprocki M、Čertík O、Kirpichev SB、Rocklin M、Kumar A、Ivanov S、Moore JK、Singh S、Rathnayake T、Vig S、Granger BE、Muller RP、Bonazzi F、Gupta H、Vats S , Johansson F, Pedregosa F, Curry MJ, Terrel AR, Roučka Š, Saboo A, Fernando I、Kulal S、Cimrman R、Scopatz A. (2017) SymPy:Python 中的符号计算。 PeerJ 计算机科学3:e103 https://doi.org/10.7717/peerj-cs.103
LaTeX 用户的 BibTeX 条目是
@article { 10.7717/peerj-cs.103 ,
title = { SymPy: symbolic computing in Python } ,
author = { Meurer, Aaron and Smith, Christopher P. and Paprocki, Mateusz and v{C}ert'{i}k, Ondv{r}ej and Kirpichev, Sergey B. and Rocklin, Matthew and Kumar, Amit and Ivanov, Sergiu and Moore, Jason K. and Singh, Sartaj and Rathnayake, Thilina and Vig, Sean and Granger, Brian E. and Muller, Richard P. and Bonazzi, Francesco and Gupta, Harsh and Vats, Shivam and Johansson, Fredrik and Pedregosa, Fabian and Curry, Matthew J. and Terrel, Andy R. and Rouv{c}ka, v{S}tv{e}p'{a}n and Saboo, Ashutosh and Fernando, Isuru and Kulal, Sumith and Cimrman, Robert and Scopatz, Anthony } ,
year = 2017 ,
month = Jan,
keywords = { Python, Computer algebra system, Symbolics } ,
abstract = {
SymPy is an open-source computer algebra system written in pure Python. It is built with a focus on extensibility and ease of use, through both interactive and programmatic applications. These characteristics have led SymPy to become a popular symbolic library for the scientific Python ecosystem. This paper presents the architecture of SymPy, a description of its features, and a discussion of select submodules. The supplementary material provides additional examples and further outlines details of the architecture and features of SymPy.
} ,
volume = 3 ,
pages = { e103 } ,
journal = { PeerJ Computer Science } ,
issn = { 2376-5992 } ,
url = { https://doi.org/10.7717/peerj-cs.103 } ,
doi = { 10.7717/peerj-cs.103 }
}
SymPy 是 BSD 许可的,因此您可以随意使用它,无论是学术的、商业的、创建分叉还是衍生品,只要您重新分发它时复制 BSD 声明即可(详细信息请参阅许可证文件)。也就是说,虽然 SymPy 许可证没有要求,但如果您方便的话,请在工作中使用 SymPy 时引用 SymPy,并考虑将您的所有更改贡献回来,以便我们可以合并它,我们所有人都将受益于结尾。