有關作者列表,請參閱 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 年夏天,作為 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。 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,並考慮將您的所有更改貢獻回來,以便我們可以合併它,我們所有人都將受益於結尾。