I'm writing a scientific article and a dissertation in biology, for which I used Python for simulations. Some people in our department, especially the "non-computer-people", don't know what Python is, so I want to reference something helpful. Open-Source scientific tools such as CellProfiler usually tell you how to reference them, but Python doesn't.

How is the Python language properly referenced? Are there any articles in journals available I could link to?

  • 3
    I understand your consternation. Thank you for moving this. FWIW - r has a package to generate citations for each package e.g. citation("rmetadata"). The same format could be used for Python packages. Van Rossum, G. (2007). Python programming language. In USENIX Annual Technical Conference. As per the APA - "Do not cite standard office software (e.g. Word, Excel) or programming languages. Provide references only for specialized software. Ludwig, T. (2002). PsychInquiry [computer software]. New York: Worth." owl.english.purdue.edu/owl/resource/560/10
    – d-cubed
    Commented Feb 16, 2014 at 20:22
  • Use the biblatex-software's @Software field if you are using Latex. You can include the actual versions or module, as well as the license. Highly recommended to cite software (version, module, fragment).
    – Clément
    Commented Oct 29, 2020 at 16:57
  • 1
    @Clément Had I only known this 8 years ago when I did my PhD! :-) Thank you, maybe it will help someone.
    – Eekhoorn
    Commented Oct 31, 2020 at 13:13
  • 1
    @Eekhoorn It was released this year, so it would not have changed much 8 years ago!
    – Clément
    Commented Oct 31, 2020 at 13:46
  • Side note: if you're an academic writing an open-source software package that you think will be used by other academics, why not submit a paper announcing its existence to the Journal of Open Source Software, then there'll be something clear for people to cite, and the referees can be very helpful in refining the software. (Having said that, my last submission there was desk-rejected because the project was too small.) Commented Sep 2, 2023 at 10:01

4 Answers 4


In order to cite a programming language, a possible way is to cite the reference manual, including the version of the language you use (your approach might no longer work with the version of Python available in 20 years ...).

For instance, you can have a citation like:

Python Software Foundation. Python Language Reference, version 2.7. Available at http://www.python.org

According to this thread, you can also cite the original CWI TR:

"G. van Rossum, Python tutorial, Technical Report CS-R9526, Centrum voor Wiskunde en Informatica (CWI), Amsterdam, May 1995."

  • 18
    +1 although I usually cite software as … software. It’s a publication, after all. Many citation managers might not recognise this as a citation type but the reason for this is that they’re stuck in the previous millenium, nothing more. Commented Nov 27, 2012 at 16:51
  • 1
    +1 for the second suggestion as I have always cited every bit of software that way, and I hope people that use my software would do the same. This is especially true for the more specialized libraries such as NumPy, SciPy and matplotlib for which I can share how I normally reference them if desired.
    – Bas Jansen
    Commented Apr 18, 2017 at 14:52
  • According to APA6 (from owl.english.purdue.edu/owl/resource/560/09) the citation shall be: "Centrum voor Wiskunde en Informatica (1995). Python tutorial. Technical Report CS-R9526. Amsterdam: van Rossum, G." or so
    – abukaj
    Commented May 19, 2017 at 10:33
  • 2
    To add on Latex, It was done the following way, can be improved.... @Techreport{CS-R9526, title= {Python tutorial}, author = {G. van Rossum}, number={CS-R9526}, institution= {Centrum voor Wiskunde en Informatica (CWI)}, year= {1995}, address={Amsterdam}, month={May} } and the output is: G. van Rossum. Python tutorial. Technical Report CS-R9526, Centrum voor Wiskunde en Informatica (CWI), Amsterdam, May 1995. Commented Jun 7, 2018 at 16:46
  • 2
    Okay, you can cite that technical report, but did you actually read that technical report? Probably not. I used python, and I'd like to cite it, but it's bad practice to cite papers/documents that you haven't actually read. I want to cite the programming language and the packages I used, not papers about them. In consideration of this, the first option seems better. Commented Mar 27, 2019 at 6:18

A common choice I have seen is to cite the software by name and give a link to the website or name the company (for proprietary software) or both. For MATLAB, a mathematical programming language, I have often seen:

...for the simulations we used Matlab (The MathWorks, Inc., Natick, Massachusetts, United States)....

Likewise in citation lists and also in text, you often see something like:

MATLAB and Signal Processing Toolbox Release 2012b, The MathWorks, Inc., Natick, Massachusetts, United States. http://www.mathworks.com/

Note that it is often good to include libraries or toolboxes as well as the languages used. Most computer languages used in academic research are not used alone but depend heavily on add-on components. For these, there may be explicitly given papers to cite or the authors may provide preferred citation rules. The most important component of citing a software package is the website, especially if it is open-source, as that allows others to dig into the details of your work but actually using the same tools!

For open-source software like Python, you could name the organization or give the website:

...for the simulations we used the Python programming language (Python Software Foundation, https://www.python.org/).

Obviously, check your schools formatting demands for dissertations/theses, and note that most style guides have explicit rules for software, and those would apply to computer languages as well.


This is probably a late answer but now Python's official FAQ page has information regarding 'Are there any published articles about Python that I can reference?'.

It’s probably best to cite your favorite book about Python. The very first article about Python was written in 1991 and is now quite outdated.

Guido van Rossum and Jelke de Boer, “Interactively Testing Remote Servers Using the Python Programming Language”, CWI Quarterly, Volume 4, Issue 4 (December 1991), Amsterdam, pp 283–303.


I think it should be standard to cite programming language and used libraries. To cite Python you can use this citation:

  title={Python tutorial}, 
  author={Van Rossum, Guido and Drake Jr, Fred L}, 
  publisher={Centrum voor Wiskunde en Informatica Amsterdam, The Netherlands} 

This citation can be found also here http://www.citebay.com/how-to-cite/python/. At this website there are citations for many Python libraries, that are widely used (numpy, scipy, etc.).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .