{"id":4076,"date":"2023-07-18T09:18:54","date_gmt":"2023-07-18T09:18:54","guid":{"rendered":"https:\/\/picockpit.com\/raspberry-pi\/?p=4076"},"modified":"2023-07-26T14:44:58","modified_gmt":"2023-07-26T14:44:58","slug":"whats-the-difference-between-micropython-circuitpython-cpython-anyway","status":"publish","type":"post","link":"https:\/\/picockpit.com\/raspberry-pi\/whats-the-difference-between-micropython-circuitpython-cpython-anyway\/","title":{"rendered":"What&#8217;s the difference between CPython, MicroPython, &#038; CircuitPython anyway?"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Micro-Circuit-CPython1-1024x576.png\" alt=\"\" class=\"wp-image-4331\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Micro-Circuit-CPython1-1024x576.png 1024w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Micro-Circuit-CPython1-300x169.png 300w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Micro-Circuit-CPython1-768x432.png 768w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Micro-Circuit-CPython1-18x10.png 18w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Micro-Circuit-CPython1.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>CPython, MicroPython, and CircuitPython hold a dear place in the hearts of many a tinkerer. But it&#8217;s not always clear what the differences are. And if you&#8217;re messing around with microcontrollers for the first time, these distinctions can play a key role in understanding what&#8217;s up with your code.<\/p>\n\n\n\n<p>So, in this article, I will explain what these three implementations of Python are and how they compare and contrast.<\/p>\n\n\n\n<p>It&#8217;s important to remember that Python is both a language <em>and<\/em> a program. In this context, the implementation is the program that interprets and executes Python code.<\/p>\n\n\n\n<p>So we&#8217;re mostly talking about three programs (which include runtime environments, standard libraries, and other tools) that can run Python code. So let&#8217;s start with the reference program &#8211; CPython.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">CPython<\/h1>\n\n\n\n<p>CPython is the default and most widely used implementation of the Python programming language. Usually, when people talk about Python, they are talking about Python running on CPython.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/pexels-realtoughcandycom-11035474-1024x683.jpg\" alt=\"\" class=\"wp-image-4233\" width=\"577\" height=\"384\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/pexels-realtoughcandycom-11035474-1024x683.jpg 1024w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/pexels-realtoughcandycom-11035474-300x200.jpg 300w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/pexels-realtoughcandycom-11035474-768x512.jpg 768w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/pexels-realtoughcandycom-11035474-1536x1024.jpg 1536w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/pexels-realtoughcandycom-11035474-2048x1365.jpg 2048w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/pexels-realtoughcandycom-11035474-18x12.jpg 18w\" sizes=\"auto, (max-width: 577px) 100vw, 577px\" \/><\/figure>\n<\/div>\n\n\n<p>Unsurprisingly, it is written in C (hence the &#8220;C&#8221;) and serves as the reference implementation for the Python language. If you want all the dirty details, you can <a href=\"https:\/\/docs.python.org\/3\/c-api\/intro.html\">check out CPython&#8217;s documentation here<\/a>.<\/p>\n\n\n\n<p>CPython interprets and executes Python code and provides the core functionality and features of Python. And since it&#8217;s the most used, it also has access to the most extensive ecosystem of libraries and packages, including libraries like NumPy, Django, Flask, TensorFlow, etc.<\/p>\n\n\n\n<p>CPython also has runtime environment with dynamic memory management (including automatic memory allocation through reference-counting as well as garbage collection).<\/p>\n\n\n\n<p>When it comes to error handling, CPython offers you the ability to manage errors and exceptions through try-except blocks.<\/p>\n\n\n\n<p>It also, of course, has a built-in debugger module, <code>pdb<\/code>, which supports breakpoints and single stepping. You can give it a whirl by running:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"import pdb; pdb.set_trace()\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">pdb<\/span><span style=\"color: #D8DEE9FF\">; <\/span><span style=\"color: #8FBCBB\">pdb<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">set_trace<\/span><span style=\"color: #D8DEE9FF\">()<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Finally, CPython uses a Global Interpreter Lock (GIL), which only allows one main thread to execute Python bytecode within a single process. In other words, CPython supports asynchronous programming, but not parallel programming. <em>More on Async and Parallel programming in an upcoming post!<\/em><\/p>\n\n\n\n<p>Some other implementations don&#8217;t use the GIL so that they can offer different approaches to concurrency and parallelism. <\/p>\n\n\n\n<p>For example, Jython runs on the Java Virtual Machine. <\/p>\n\n\n\n<p>IronPython runs on .NET. <\/p>\n\n\n\n<p>And PyPy runs on Software Transactional Memory.<\/p>\n\n\n\n<p>CPython, MicroPython, and CircuitPython, however, all run with the GIL in place.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">MicroPython<\/h1>\n\n\n\n<p>In contrast to CPython, which is designed for general purpose (desktops, servers, embedded systems, etc.), MicroPython is an implementation of Python specifically optimized for microcontrollers (like the Pico!) and embedded systems.<\/p>\n\n\n\n<p>It&#8217;s worth mentioning here that MicroPython is sometimes written as uPython, because of the Greek letter \u03bc (&#8220;mu&#8221;, as in the first letter of &#8220;mikr\u00f3s&#8221;).<\/p>\n\n\n\n<p>MicroPython thereby doesn&#8217;t require an operating system, you can run it effectively <em>as <\/em>the operating system on a microcontroller.<\/p>\n\n\n\n<p>Typically, in order to do that, people rely on <a href=\"https:\/\/thonny.org\/\">the Thonny IDE<\/a>, which has a number of extremely useful tools for dealing with MicroPython.<\/p>\n\n\n\n<p>While still written in C, MicroPython is all about providing a compact runtime for less powerful devices &#8211; so it uses less memory and really only provides specific modules and libraries for embedded systems, like <code>machine<\/code>, <code>utime<\/code>, and <code>network<\/code>.<\/p>\n\n\n\n<p>If you&#8217;re looking for some awesome MicroPython libraries, you can check out <a href=\"https:\/\/awesome-micropython.com\/\">Awesome MicroPython<\/a>.<\/p>\n\n\n\n<p>CPython uses reference-counting as its main garbage collection algorithm, but <a href=\"https:\/\/docs.micropython.org\/en\/latest\/develop\/memorymgt.html\">MicroPython uses Mark and Sweep as its main garbage collection algorithm<\/a> to manage memory.<\/p>\n\n\n\n<p>It was created by Damien George 10 years ago and if you want to listen to him talk about it, you can check out this lecture:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" hcb-fetch-image-from=\"https:\/\/www.youtube.com\/watch?v=WI-nTf5iM84\" title=\"Using MicroPython in the wild\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/WI-nTf5iM84?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>So MicroPython doesn&#8217;t have all the features of the standard library in CPython.<\/p>\n\n\n\n<p>Unlike CPython, MicroPython doesn&#8217;t have built-in support for <code>pdb<\/code> as a debugging tool. Instead, if you&#8217;re using MicroPython, you&#8217;re going to need to rely on other techniques like print statements.<\/p>\n\n\n\n<p>If you&#8217;re interested in utilizing external debuggers, you could check out <a href=\"https:\/\/github.com\/bobveringa\/mpdb\">this very cool MicroPython Debugger on GitHub<\/a>. It&#8217;s aimed at providing <code>pdb<\/code> features to MicroPython.<\/p>\n\n\n\n<p>If you&#8217;re interested in checking out the MicroPython documentation for more in-depth stuff, you can follow <a href=\"https:\/\/docs.micropython.org\/en\/latest\/index.html\">this link to see all the details<\/a>.<\/p>\n\n\n\n<p>So MicroPython is a more constrained implementation of CPython, but it&#8217;s still marvelously powerful and often the ideal tool for many projects.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">CircuitPython<\/h1>\n\n\n\n<p>Another great tool though is CircuitPython.<\/p>\n\n\n\n<p>CircuitPython is a fork of MicroPython associated with <a href=\"https:\/\/www.adafruit.com\/\">Adafruit<\/a> and is aimed at being more beginner-friendly (whether or not MicroPython isn&#8217;t beginner-friendly enough is certainly a matter of debate).<\/p>\n\n\n\n<p>In fact, the differences between MicroPython and CircuitPython are extremely small.<\/p>\n\n\n\n<p>One notable difference is that CircuitPython is designed to have files moved to the board by appearing as an external disk (just as a USB would). The idea there is that you don&#8217;t need to upload a file through Thonny (although you still can).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Screenshot-from-2023-07-18-10-45-28.png\" alt=\"\" class=\"wp-image-4234\" width=\"591\" height=\"485\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Screenshot-from-2023-07-18-10-45-28.png 797w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Screenshot-from-2023-07-18-10-45-28-300x246.png 300w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Screenshot-from-2023-07-18-10-45-28-768x630.png 768w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Screenshot-from-2023-07-18-10-45-28-15x12.png 15w\" sizes=\"auto, (max-width: 591px) 100vw, 591px\" \/><\/figure>\n<\/div>\n\n\n<p>For instance, CircuitPython has specific libraries, such as <code>adafruit_neopixel<\/code>, <code>adafruit_bmp280<\/code>, and <code>adafruit_dotstar<\/code>, which are all aimed at specific hardware.<\/p>\n\n\n\n<p>Something that really sets CircuitPython apart is the vibrant community that Adafruit has fostered around it. You can check out the CircuitPython <a href=\"https:\/\/forums.adafruit.com\/viewforum.php?f=60\">forum<\/a> and the <a href=\"https:\/\/adafru.it\/discord\">discord<\/a> to see for yourself. (I should point out that MicroPython also has a <a href=\"https:\/\/github.com\/orgs\/micropython\/discussions\">forum<\/a> and a <a href=\"https:\/\/discord.com\/invite\/RB8HZSAExQ\">discord<\/a>, albeit far less frequented, since most MicroPython discussion happens on <a href=\"https:\/\/github.com\/orgs\/micropython\/discussions\">GitHub<\/a>).<\/p>\n\n\n\n<p>If you want to learn more about CircuitPython and its differences with MicroPython (and CPython), you can check out <a href=\"https:\/\/docs.circuitpython.org\/en\/latest\/docs\/index.html#\">its documentation page here<\/a>. Even its documentation looks similar to the MicroPython documentation!<\/p>\n\n\n\n<p>Otherwise, you can check out this video put out by Adafruit:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" hcb-fetch-image-from=\"https:\/\/www.youtube.com\/watch?v=rN7kvWuAt7k\" title=\"CircuitPython: Python on hardware (Dave Astels)\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/rN7kvWuAt7k?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>If there are any other interesting differences you know of, let us know in the comments below!<\/p>\n<div class=\"shariff shariff-align-center shariff-widget-align-left shariff-buttonstretch\"><ul class=\"shariff-buttons theme-white orientation-horizontal buttonsize-medium\"><li class=\"shariff-button twitter shariff-nocustomcolor\" style=\"background-color:#595959\"><a href=\"https:\/\/twitter.com\/share?url=https%3A%2F%2Fpicockpit.com%2Fraspberry-pi%2Fwhats-the-difference-between-micropython-circuitpython-cpython-anyway%2F&text=What%E2%80%99s%20the%20difference%20between%20CPython%2C%20MicroPython%2C%20%26%20CircuitPython%20anyway%3F\" title=\"Share on X\" aria-label=\"Share on X\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#000; color:#000\" target=\"_blank\"><span class=\"shariff-icon\" style=\"fill:#000\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path fill=\"#000\" d=\"M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0\"\/><\/svg><\/span><span class=\"shariff-text\" style=\"color:#000\">share<\/span>&nbsp;<\/a><\/li><li class=\"shariff-button facebook shariff-nocustomcolor\" style=\"background-color:#4273c8\"><a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Fpicockpit.com%2Fraspberry-pi%2Fwhats-the-difference-between-micropython-circuitpython-cpython-anyway%2F\" title=\"Share on Facebook\" aria-label=\"Share on Facebook\" role=\"button\" rel=\"nofollow\" class=\"shariff-link\" style=\"; background-color:#3b5998; color:#3b5998\" target=\"_blank\"><span class=\"shariff-icon\" style=\"fill:#3b5998\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 18 32\"><path fill=\"#3b5998\" d=\"M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z\"\/><\/svg><\/span><span class=\"shariff-text\" style=\"color:#3b5998\">share<\/span>&nbsp;<\/a><\/li><li class=\"shariff-button telegram shariff-nocustomcolor\" style=\"background-color:#4084A6\"><a href=\"https:\/\/telegram.me\/share\/url?url=https%3A%2F%2Fpicockpit.com%2Fraspberry-pi%2Fwhats-the-difference-between-micropython-circuitpython-cpython-anyway%2F&text=What%E2%80%99s%20the%20difference%20between%20CPython%2C%20MicroPython%2C%20%26%20CircuitPython%20anyway%3F\" title=\"Share on Telegram\" aria-label=\"Share on Telegram\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#0088cc; color:#0088cc\" target=\"_blank\"><span class=\"shariff-icon\" style=\"fill:#0088cc\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 32 32\"><path fill=\"#0088cc\" d=\"M30.8 6.5l-4.5 21.4c-.3 1.5-1.2 1.9-2.5 1.2L16.9 24l-3.3 3.2c-.4.4-.7.7-1.4.7l.5-7L25.5 9.2c.6-.5-.1-.8-.9-.3l-15.8 10L2 16.7c-1.5-.5-1.5-1.5.3-2.2L28.9 4.3c1.3-.5 2.3.3 1.9 2.2z\"\/><\/svg><\/span><span class=\"shariff-text\" style=\"color:#0088cc\">share<\/span>&nbsp;<\/a><\/li><li class=\"shariff-button reddit shariff-nocustomcolor\" style=\"background-color:#ff5700\"><a href=\"https:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fpicockpit.com%2Fraspberry-pi%2Fwhats-the-difference-between-micropython-circuitpython-cpython-anyway%2F\" title=\"Share on Reddit\" aria-label=\"Share on Reddit\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#ff4500; color:#ff4500\" target=\"_blank\"><span class=\"shariff-icon\" style=\"fill:#ff4500\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\"><path fill=\"#ff4500\" d=\"M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z\"\/><\/svg><\/span><span class=\"shariff-text\" style=\"color:#ff4500\">share<\/span>&nbsp;<\/a><\/li><\/ul><\/div>","protected":false},"excerpt":{"rendered":"<p>CPython, MicroPython, and CircuitPython hold a dear place in the hearts of many a tinkerer. But it&#8217;s not always clear what the differences are. And if you&#8217;re messing around with microcontrollers for the first time, these distinctions can play a key role in understanding what&#8217;s up with your code. So, in this article, I will&hellip;<\/p>\n","protected":false},"author":2,"featured_media":4331,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1193],"tags":[1196,477,996,1200,1199,1198,1194,178,597,789,14,826,11,1195,476,187,456,1197],"class_list":["post-4076","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","tag-brython","tag-circuitpython","tag-cpython","tag-execution","tag-implementation","tag-ironpython","tag-jython","tag-memory","tag-microcontroller","tag-microcontrollers","tag-micropython","tag-optimization","tag-pico","tag-pypy","tag-python","tag-raspberry-pi","tag-raspberry-pi-projects","tag-stackless-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>What&#039;s the difference between CPython, MicroPython, &amp; CircuitPython anyway? | PiCockpit<\/title>\n<meta name=\"description\" content=\"In this post, we&#039;re looking at what distinguishes CPython from MicroPython and both of them from CircuitPython.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/picockpit.com\/raspberry-pi\/whats-the-difference-between-micropython-circuitpython-cpython-anyway\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What&#039;s the difference between CPython, MicroPython, &amp; CircuitPython anyway? | PiCockpit\" \/>\n<meta property=\"og:description\" content=\"In this post, we&#039;re looking at what distinguishes CPython from MicroPython and both of them from CircuitPython.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/picockpit.com\/raspberry-pi\/whats-the-difference-between-micropython-circuitpython-cpython-anyway\/\" \/>\n<meta property=\"og:site_name\" content=\"PiCockpit\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/pi3gshop\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-18T09:18:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-07-26T14:44:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Micro-Circuit-CPython1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"raspi berry\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@pi3g\" \/>\n<meta name=\"twitter:site\" content=\"@pi3g\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"raspi berry\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/nl\\\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/nl\\\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\\\/\"},\"author\":{\"name\":\"raspi berry\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#\\\/schema\\\/person\\\/7af3a7a8c999bc722029ef9ca9d78eee\"},\"headline\":\"What&#8217;s the difference between CPython, MicroPython, &#038; CircuitPython anyway?\",\"datePublished\":\"2023-07-18T09:18:54+00:00\",\"dateModified\":\"2023-07-26T14:44:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/nl\\\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\\\/\"},\"wordCount\":965,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/nl\\\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Micro-Circuit-CPython1.png\",\"keywords\":[\"brython\",\"circuitpython\",\"cpython\",\"execution\",\"implementation\",\"IronPython\",\"jython\",\"memory\",\"microcontroller\",\"microcontrollers\",\"microPython\",\"optimization\",\"Pico\",\"pypy\",\"python\",\"Raspberry Pi\",\"Raspberry Pi projects\",\"stackless python\"],\"articleSection\":[\"Python\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/nl\\\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/nl\\\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\\\/\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/nl\\\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\\\/\",\"name\":\"What's the difference between CPython, MicroPython, & CircuitPython anyway? | PiCockpit\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/nl\\\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/nl\\\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Micro-Circuit-CPython1.png\",\"datePublished\":\"2023-07-18T09:18:54+00:00\",\"dateModified\":\"2023-07-26T14:44:58+00:00\",\"description\":\"In this post, we're looking at what distinguishes CPython from MicroPython and both of them from CircuitPython.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/nl\\\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/nl\\\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/nl\\\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\\\/#primaryimage\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Micro-Circuit-CPython1.png\",\"contentUrl\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Micro-Circuit-CPython1.png\",\"width\":1200,\"height\":675},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/nl\\\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python\",\"item\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/category\\\/python\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"What&#8217;s the difference between CPython, MicroPython, &#038; CircuitPython anyway?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#website\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/\",\"name\":\"PiCockpit\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#organization\",\"name\":\"PiCockpit.com\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Screenshot-from-2023-07-24-15-01-24.png\",\"contentUrl\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Screenshot-from-2023-07-24-15-01-24.png\",\"width\":1165,\"height\":283,\"caption\":\"PiCockpit.com\"},\"image\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/pi3gshop\",\"https:\\\/\\\/x.com\\\/pi3g\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#\\\/schema\\\/person\\\/7af3a7a8c999bc722029ef9ca9d78eee\",\"name\":\"raspi berry\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g\",\"caption\":\"raspi berry\"},\"description\":\"I'm here to help you with all your Raspberry Pi related questions &amp; love to share about new project ideas for the Raspberry Pi, and give quick tips. Of course I'll also help you with PiCockpit and how to make your Raspberry Pi even easier to use with this raspberry pi monitoring solution :-)\",\"sameAs\":[\"https:\\\/\\\/picockpit.com\"],\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/author\\\/raspi-berry\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"What's the difference between CPython, MicroPython, & CircuitPython anyway? | PiCockpit","description":"In this post, we're looking at what distinguishes CPython from MicroPython and both of them from CircuitPython.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/picockpit.com\/raspberry-pi\/whats-the-difference-between-micropython-circuitpython-cpython-anyway\/","og_locale":"en_US","og_type":"article","og_title":"What's the difference between CPython, MicroPython, & CircuitPython anyway? | PiCockpit","og_description":"In this post, we're looking at what distinguishes CPython from MicroPython and both of them from CircuitPython.","og_url":"https:\/\/picockpit.com\/raspberry-pi\/whats-the-difference-between-micropython-circuitpython-cpython-anyway\/","og_site_name":"PiCockpit","article_publisher":"https:\/\/www.facebook.com\/pi3gshop","article_published_time":"2023-07-18T09:18:54+00:00","article_modified_time":"2023-07-26T14:44:58+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Micro-Circuit-CPython1.png","type":"image\/png"}],"author":"raspi berry","twitter_card":"summary_large_image","twitter_creator":"@pi3g","twitter_site":"@pi3g","twitter_misc":{"Written by":"raspi berry","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/picockpit.com\/raspberry-pi\/nl\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\/#article","isPartOf":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/nl\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\/"},"author":{"name":"raspi berry","@id":"https:\/\/picockpit.com\/raspberry-pi\/#\/schema\/person\/7af3a7a8c999bc722029ef9ca9d78eee"},"headline":"What&#8217;s the difference between CPython, MicroPython, &#038; CircuitPython anyway?","datePublished":"2023-07-18T09:18:54+00:00","dateModified":"2023-07-26T14:44:58+00:00","mainEntityOfPage":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/nl\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\/"},"wordCount":965,"commentCount":0,"publisher":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/#organization"},"image":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/nl\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\/#primaryimage"},"thumbnailUrl":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Micro-Circuit-CPython1.png","keywords":["brython","circuitpython","cpython","execution","implementation","IronPython","jython","memory","microcontroller","microcontrollers","microPython","optimization","Pico","pypy","python","Raspberry Pi","Raspberry Pi projects","stackless python"],"articleSection":["Python"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/picockpit.com\/raspberry-pi\/nl\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/picockpit.com\/raspberry-pi\/nl\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\/","url":"https:\/\/picockpit.com\/raspberry-pi\/nl\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\/","name":"What's the difference between CPython, MicroPython, & CircuitPython anyway? | PiCockpit","isPartOf":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/#website"},"primaryImageOfPage":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/nl\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\/#primaryimage"},"image":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/nl\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\/#primaryimage"},"thumbnailUrl":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Micro-Circuit-CPython1.png","datePublished":"2023-07-18T09:18:54+00:00","dateModified":"2023-07-26T14:44:58+00:00","description":"In this post, we're looking at what distinguishes CPython from MicroPython and both of them from CircuitPython.","breadcrumb":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/nl\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/picockpit.com\/raspberry-pi\/nl\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/picockpit.com\/raspberry-pi\/nl\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\/#primaryimage","url":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Micro-Circuit-CPython1.png","contentUrl":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Micro-Circuit-CPython1.png","width":1200,"height":675},{"@type":"BreadcrumbList","@id":"https:\/\/picockpit.com\/raspberry-pi\/nl\/wat-het-verschil-tussen-micropython-circuitpython-cpython-anyway\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/picockpit.com\/raspberry-pi\/"},{"@type":"ListItem","position":2,"name":"Python","item":"https:\/\/picockpit.com\/raspberry-pi\/category\/python\/"},{"@type":"ListItem","position":3,"name":"What&#8217;s the difference between CPython, MicroPython, &#038; CircuitPython anyway?"}]},{"@type":"WebSite","@id":"https:\/\/picockpit.com\/raspberry-pi\/#website","url":"https:\/\/picockpit.com\/raspberry-pi\/","name":"PiCockpit","description":"","publisher":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/picockpit.com\/raspberry-pi\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/picockpit.com\/raspberry-pi\/#organization","name":"PiCockpit.com","url":"https:\/\/picockpit.com\/raspberry-pi\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/picockpit.com\/raspberry-pi\/#\/schema\/logo\/image\/","url":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Screenshot-from-2023-07-24-15-01-24.png","contentUrl":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Screenshot-from-2023-07-24-15-01-24.png","width":1165,"height":283,"caption":"PiCockpit.com"},"image":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/pi3gshop","https:\/\/x.com\/pi3g"]},{"@type":"Person","@id":"https:\/\/picockpit.com\/raspberry-pi\/#\/schema\/person\/7af3a7a8c999bc722029ef9ca9d78eee","name":"raspi berry","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g","caption":"raspi berry"},"description":"I'm here to help you with all your Raspberry Pi related questions &amp; love to share about new project ideas for the Raspberry Pi, and give quick tips. Of course I'll also help you with PiCockpit and how to make your Raspberry Pi even easier to use with this raspberry pi monitoring solution :-)","sameAs":["https:\/\/picockpit.com"],"url":"https:\/\/picockpit.com\/raspberry-pi\/author\/raspi-berry\/"}]}},"_links":{"self":[{"href":"https:\/\/picockpit.com\/raspberry-pi\/wp-json\/wp\/v2\/posts\/4076","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/picockpit.com\/raspberry-pi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/picockpit.com\/raspberry-pi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/wp-json\/wp\/v2\/comments?post=4076"}],"version-history":[{"count":24,"href":"https:\/\/picockpit.com\/raspberry-pi\/wp-json\/wp\/v2\/posts\/4076\/revisions"}],"predecessor-version":[{"id":4332,"href":"https:\/\/picockpit.com\/raspberry-pi\/wp-json\/wp\/v2\/posts\/4076\/revisions\/4332"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/wp-json\/wp\/v2\/media\/4331"}],"wp:attachment":[{"href":"https:\/\/picockpit.com\/raspberry-pi\/wp-json\/wp\/v2\/media?parent=4076"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/wp-json\/wp\/v2\/categories?post=4076"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/wp-json\/wp\/v2\/tags?post=4076"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}