{"id":41870,"date":"2020-02-17T11:17:15","date_gmt":"2020-02-17T08:17:15","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/ustanovka-or-tools-s-scip-i-glpk-v-virtualnoe-okruzhenie-python-3-7-na-linux"},"modified":"2020-02-17T11:17:15","modified_gmt":"2020-02-17T08:17:15","slug":"ustanovka-or-tools-s-scip-i-glpk-v-virtualnoe-okruzhenie-python-3-7-na-linux","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/ustanovka-or-tools-s-scip-i-glpk-v-virtualnoe-okruzhenie-python-3-7-na-linux","title":{"rendered":"Installing or-tools with SCIP and GLPK in a Python 3.7 virtual environment on Linux.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>I decided to participate in <noindex><a rel=\"nofollow\" href=\"https:\/\/www.kaggle.com\/c\/santa-workshop-tour-2019\">the competition<\/a><\/noindex> and needed to use packages for solving optimization tasks. I chose Google's tool or-tools, which serves as an interface for various solvers. It includes several optimization tools, but the creators claim support for multiple external packages, including commercial ones like Gurobi and CPLEX. However, we are not wealthy, so we will use the free SCIP and GLPK (from a domestic developer, by the way). To my surprise, I couldn't find any instructions on how to make this wonderful tool work in a Python virtual environment, both in our and English-speaking segments of the internet, so I had to tinker a bit. For those in a hurry, read immediately <noindex><a rel=\"nofollow\" href=\"#guide\">here<\/a><\/noindex>, for the rest, I offer you to get acquainted with the questionable quality of my writing, describing the ups and downs of installing Google's software. Yes, I forgot to mention right away that everything was installed on Manjaro Linux.<\/p>\n<p><img decoding=\"async\" alt=\"Installing or-tools with SCIP and GLPK in a Python 3.7 virtual environment on Linux.\" src=\"\/wp-content\/uploads\/2020\/02\/d65bca44558d794b0fc6ff0e911725fc.jpeg\" style=\"display:block;margin: 0 auto;\" \/><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>First Steps<\/h2>\n<p>\nAll three packages exist in the Python repository, so let's install them via pip.<\/p>\n<p>Each of them has its own interface, and or-tools was chosen precisely to try various packages without significant rewrites of the program. Therefore, the task is for or-tools to hook up these solvers and allow them to run through itself. And what do you think? The or-tools installed via pip does not see the solvers installed via pip, and they do not see it (who would have thought). So, we need to take a look at what is written in <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.google.com\/optimization\/install\/python\/source_linux\">the documentation<\/a><\/noindex>.<br \/>\nThe documentation states that it is necessary to build from source to connect the external packages to or-tools. We try to build it, but nothing comes out because the solvers installed via pip are not visible. <br \/>\nAccordingly, the simplest ways to install all packages via pip do not work because or-tools does not pull in the solvers, and the solvers do not install the libraries as or-tools expects; everyone throws errors at you, calls you dumb, and mocks you. <\/p>\n<p>Next, in <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.google.com\/optimization\/install\/python\/source_linux#install-the-scip-optimization-suite\">the documentation<\/a><\/noindex> it says that you need to build the solvers from source, then build or-tools from source. Done and done! I installed SCIP, I installed GLPK, but an issue not described in the documentation arose: how to install or-tools in a virtual environment. <\/p>\n<p>The only command specified in the documentation, make python, installs the package globally on the system (surprising, right?).<\/p>\n<p>However, I got lucky: during my engineering search using the infinite monkey method, I accidentally typed the command make help, and it gave me a list of all build options for or-tools, among which was the possibility to build a wheel package. The command is make python_package, just so you know (I'll repeat it at the end). So, is it time to build and run?<\/p>\n<p><img decoding=\"async\" alt=\"Installing or-tools with SCIP and GLPK in a Python 3.7 virtual environment on Linux.\" src=\"\/wp-content\/uploads\/2020\/02\/5d00d11acb95cf881605a43ec9b5f86f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Looking for the problem<\/h2>\n<p>\nNothing works during the or-tools build phase, it's complaining about bad GLPK libraries.<\/p>\n<p><img decoding=\"async\" alt=\"Installing or-tools with SCIP and GLPK in a Python 3.7 virtual environment on Linux.\" src=\"\/wp-content\/uploads\/2020\/02\/5a16f5dc082a46ee5cbcafa637de006f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBuilding with SCIP using the parameters from the documentation completes successfully, but or-tools still refuses to work at the import stage.<\/p>\n<p><img decoding=\"async\" alt=\"Installing or-tools with SCIP and GLPK in a Python 3.7 virtual environment on Linux.\" src=\"\/wp-content\/uploads\/2020\/02\/acd6917b68c320a9bee5e71875c1f035.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nI couldn't find solutions to these problems on my own, so I headed over to GitHub to ask the developers why the installation according to their instructions resulted in errors somewhere inside their code.<\/p>\n<p><img decoding=\"async\" alt=\"Installing or-tools with SCIP and GLPK in a Python 3.7 virtual environment on Linux.\" src=\"\/wp-content\/uploads\/2020\/02\/997062c260ba5569bb755bbe757615bd.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Hmm, thanks for the clarifications<br \/>\n<\/i><br \/>\nWhile I was waiting for a response on GitHub, I was searching the internet, hoping to find something that could help me. And surprisingly, I found something. It was <noindex><a rel=\"nofollow\" href=\"http:\/\/or-tools.blogspot.com\/2017\/03\/linking-glpk-with-or-tools-on-unix.html\">blog<\/a><\/noindex> the project team lead, where he wrote about how to link GLPK with or-tools. And this method finally worked! Now, if everything is built without SCIP, but with GLPK, it is even workable. Progress made.<\/p>\n<p>However, the or-tools team lead advised against using GLPK, saying that the results are not great, and I really want to conquer SCIP and make it work. A neighboring <noindex><a rel=\"nofollow\" href=\"http:\/\/or-tools.blogspot.com\/2017\/03\/changing-way-we-link-with-scip.html\">post<\/a><\/noindex> blog led me to think that the Google package works with specific versions. Let's check the <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.google.com\/optimization\/support\/release_notes#support-for-scip-6.0.0\">release notes list<\/a><\/noindex> and see there is a clear indication of version 6.0.0. Despite the makefile indicating version 6.0.2, we try installing the older version, and voila!<\/p>\n<p>And now once again, the working sequence of actions.<br \/>\n<noindex><a rel=\"nofollow\" name=\"guide\"><\/a><\/noindex><\/p>\n<h2>Installation sequence<\/h2>\n<p><\/p>\n<ol>\n<li>Download the SCIP archive, ensuring that <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.google.com\/optimization\/support\/release_notes\">here<\/a><\/noindex> the support for the version you are downloading is clearly stated (in my case, <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.google.com\/optimization\/support\/release_notes#support-for-scip-6.0.0\">developers.google.com\/optimization\/support\/release_notes#support-for-scip-6.0.0<\/a><\/noindex>) and unpack it.<\/li>\n<li>Download GLPK (as of the time of this post, the latest version is 4.65) and unpack it.<\/li>\n<li>Install SCIP using the command\n<pre><code class=\"bash\">make GMP=false READLINE=false TPI=tny ZIMPL=false scipoptlib install INSTALLDIR=\/scipoptsuite-6.0.0\n<\/code><\/pre>\n<\/li>\n<li>Install GLPK using the command:\n<pre><code class=\"bash\">.\/configure --prefix= --with-pic --enable-shared\nmake \nmake install\n<\/code><\/pre>\n<\/li>\n<li>Download OR-Tools from GitHub\n<pre><code class=\"bash\">git clone https:\/\/github.com\/google\/or-tools<\/code><\/pre>\n<\/li>\n<li>Install OR-Tools using the commands:\n<pre><code class=\"bash\">make third_party\nmake python_package\n<\/code><\/pre>\n<p>\nIf the last command does not work, install wheel with the command:<\/p>\n<pre><code class=\"bash\">pip install wheel<\/code><\/pre>\n<\/li>\n<li>Activate the virtual environment, navigate to the folder with the Python package, and install it from there.\n<p>If you need to install it globally for the entire system instead of in a virtual environment, use:<\/p>\n<pre><code class=\"bash\">make python_package<\/code><\/pre>\n<p>\nexecute the command:<\/p>\n<pre><code class=\"bash\">make python\n<\/code><\/pre>\n<\/li>\n<\/ol>\n<p>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/488346\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0420\u0435\u0448\u0438\u043b \u044f \u043f\u043e\u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0438 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u043b\u043e\u0441\u044c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438. \u0412\u044b\u0431\u0440\u0430\u043b \u0433\u0443\u0433\u043b\u043e\u0432\u0441\u043a\u0438\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 or-tools, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0437 \u0441\u0435\u0431\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0440\u0435\u0448\u0430\u0442\u0435\u043b\u0435\u0439 (\u0438\u043b\u0438 \u0440\u0435\u0448\u0430\u043b? solver\u043e\u0432?). \u041e\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432 \u0441\u0435\u0431\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438, \u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u0437\u0430\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u043c, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0438\u0445 Gurobi \u0438 CPLEX. \u041e\u0434\u043d\u0430\u043a\u043e \u043b\u044e\u0434\u0438 \u043c\u044b \u043d\u0435\u0431\u043e\u0433\u0430\u0442\u044b\u0435, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":41871,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-41870","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0420\u0435\u0448\u0438\u043b \u044f \u043f\u043e\u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0438 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u043b\u043e\u0441\u044c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/ustanovka-or-tools-s-scip-i-glpk-v-virtualnoe-okruzhenie-python-3-7-na-linux\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 or-tools \u0441 SCIP \u0438 GLPK \u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 Python 3.7 \u043d\u0430 Linux | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0420\u0435\u0448\u0438\u043b \u044f \u043f\u043e\u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0438 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u043b\u043e\u0441\u044c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/ustanovka-or-tools-s-scip-i-glpk-v-virtualnoe-okruzhenie-python-3-7-na-linux\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-02-17T08:17:15+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-17T08:17:15+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Installing or-tools with SCIP and GLPK in a Python 3.7 virtual environment on Linux | ProHoster","description":"I decided to participate in the competition and needed to use packages for solving optimization tasks.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/ustanovka-or-tools-s-scip-i-glpk-v-virtualnoe-okruzhenie-python-3-7-na-linux","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 or-tools \u0441 SCIP \u0438 GLPK \u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 Python 3.7 \u043d\u0430 Linux | ProHoster","og:description":"\u0420\u0435\u0448\u0438\u043b \u044f \u043f\u043e\u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0438 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u043b\u043e\u0441\u044c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438.","og:url":"https:\/\/prohoster.info\/en\/blog\/ustanovka-or-tools-s-scip-i-glpk-v-virtualnoe-okruzhenie-python-3-7-na-linux","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-02-17T08:17:15+00:00","article:modified_time":"2020-02-17T08:17:15+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"41870","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:08:32","updated":"2022-09-28 10:29:00","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/41870","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=41870"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/41870\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/41871"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=41870"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=41870"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=41870"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}