{"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\/ro\/blog\/ustanovka-or-tools-s-scip-i-glpk-v-virtualnoe-okruzhenie-python-3-7-na-linux","title":{"rendered":"Instalarea or-tools cu SCIP \u0219i GLPK \u00een mediu virtual Python 3.7 pe Linux","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Am decis s\u0103 particip la <noindex><a rel=\"nofollow\" href=\"https:\/\/www.kaggle.com\/c\/santa-workshop-tour-2019\">competitie<\/a><\/noindex> \u0219i am avut nevoie s\u0103 folosesc pachete pentru rezolvarea problemelor de optimizare. Am ales instrumentul de la Google or-tools, care reprezint\u0103 o interfa\u021b\u0103 pentru diferi\u021bi solu\u021bionatori (sau solvers?). Con\u021bine mai multe instrumente de optimizare, dar creatorii sus\u021bin c\u0103 suport\u0103 \u0219i c\u00e2teva pachete externe, inclusiv comerciale precum Gurobi \u0219i CPLEX. Totu\u0219i, suntem oameni f\u0103r\u0103 mul\u021bi bani, a\u0219a c\u0103 vom folosi SCIP \u0219i GLPK gratuite (de la un dezvoltator autohton, de altfel). Spre surprinderea mea, nu am g\u0103sit nicio instruc\u021biune despre cum s\u0103 fac func\u021bioneze toate aceste minuni \u00eentr-un mediu virtual Python, \u00een niciunul dintre segmentele de internet, fie ele rom\u00e2ne\u0219ti sau anglofone, a\u0219a c\u0103 a trebuit s\u0103 \u00eemi fac ceva timp. Pentru cei care se gr\u0103besc, citi\u021bi direct <noindex><a rel=\"nofollow\" href=\"#guide\">aici<\/a><\/noindex>, celorla\u021bi le propun s\u0103 se familiarizeze cu grafomania mea de calitate \u00eendoielnic\u0103, care descrie peripe\u021biile instal\u0103rii software-ului de la Google. Da, am uitat s\u0103 spun de la bun \u00eenceput c\u0103 totul s-a instalat pe Manjaro Linux.<\/p>\n<p><img decoding=\"async\" alt=\"Instalarea or-tools cu SCIP \u0219i GLPK \u00een mediu virtual Python 3.7 pe 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>Primii pa\u0219i<\/h2>\n<p>\nToate cele trei pachete exist\u0103 \u00een depozitul Python, a\u0219a c\u0103 le instal\u0103m prin pip.<\/p>\n<p>Fiecare dintre ele are propria interfa\u021b\u0103, iar or-tools a fost ales tocmai pentru a \u00eencerca diferite pachete, f\u0103r\u0103 a rescrie semnificativ programul, deci sarcina este ca or-tools s\u0103 integreze ace\u0219ti solu\u021bionatori \u0219i s\u0103 permit\u0103 rularea lor prin el. \u0218i ce crede\u021bi? Or-tools instalat prin pip nu vede solu\u021bionatorii instala\u021bi prin pip, iar ace\u0219tia nu \u00eel v\u0103d pe el (cine s-ar fi g\u00e2ndit). A\u0219a c\u0103, trebuie s\u0103 arunc\u0103m o privire la <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.google.com\/optimization\/install\/python\/source_linux\">documentation<\/a><\/noindex>.<br \/>\n\u00cen documenta\u021bie se spune c\u0103 trebuie compilat din surs\u0103, pentru ca or-tools s\u0103 integreze pachetele externe. \u00cencerc\u0103m s\u0103 compil\u0103m, dar nu reu\u0219im, deoarece solu\u021bionatorii instala\u021bi prin pip nu sunt vizibili. <br \/>\nPrin urmare, cele mai simple metode de instalare a tuturor pachetelor prin pip nu func\u021bioneaz\u0103, deoarece or-tools nu trage solu\u021bionatorii, solu\u021bionatorii nu instaleaz\u0103 bibliotecile a\u0219a cum dore\u0219te or-tools, to\u021bi te bombardeaz\u0103 cu erori, te numesc prost \u0219i r\u00e2d de tine. <\/p>\n<p>Mai departe \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.google.com\/optimization\/install\/python\/source_linux#install-the-scip-optimization-suite\">documenta\u021bie<\/a><\/noindex> se spune c\u0103 trebuie s\u0103 compilezi solu\u021bionatorii din surs\u0103, apoi s\u0103 compilezi or-tools din surs\u0103. S\u0103 vedem, am instalat SCIP, am instalat GLPK, dar a ap\u0103rut o \u00eentrebare neclar\u0103 \u00een documenta\u021bie: cum instalez or-tools \u00eentr-un mediu virtual. <\/p>\n<p>Singura comand\u0103 specificat\u0103 \u00een documenta\u021bie, make python, instaleaz\u0103 pachetul global \u00een sistem (surprinz\u0103tor, nu-i a\u0219a?).<\/p>\n<p>Cu toate acestea, am avut noroc: \u00een timpul c\u0103ut\u0103rilor ingineresti prin metoda maimu\u021belor infinite, am tastat din \u00eent\u00e2mplare comanda make help \u0219i am primit o list\u0103 cu toate op\u021biunile de construire or-tools, printre care s-a aflat posibilitatea de a construi un pachet wheel. Aceasta este comanda make python_package, pentru cei interesa\u021bi (o voi repeta \u00eenc\u0103 o dat\u0103 la final). A\u0219adar, este timpul s\u0103 construim \u0219i s\u0103 lans\u0103m?<\/p>\n<p><img decoding=\"async\" alt=\"Instalarea or-tools cu SCIP \u0219i GLPK \u00een mediu virtual Python 3.7 pe Linux\" src=\"\/wp-content\/uploads\/2020\/02\/5d00d11acb95cf881605a43ec9b5f86f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>S\u0103 c\u0103ut\u0103m problema<\/h2>\n<p>\nNimic nu func\u021bioneaz\u0103 \u00een etapa de construire a or-tools, d\u0103 gre\u0219 din cauza unor biblioteci proaste GLPK.<\/p>\n<p><img decoding=\"async\" alt=\"Instalarea or-tools cu SCIP \u0219i GLPK \u00een mediu virtual Python 3.7 pe Linux\" src=\"\/wp-content\/uploads\/2020\/02\/5a16f5dc082a46ee5cbcafa637de006f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nConstruc\u021bia cu SCIP, conform parametrilor din documenta\u021bie, func\u021bioneaz\u0103 cu succes, dar or-tools tot refuz\u0103 s\u0103 func\u021bioneze \u00een momentul importului.<\/p>\n<p><img decoding=\"async\" alt=\"Instalarea or-tools cu SCIP \u0219i GLPK \u00een mediu virtual Python 3.7 pe Linux\" src=\"\/wp-content\/uploads\/2020\/02\/acd6917b68c320a9bee5e71875c1f035.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNu am g\u0103sit solu\u021bii la aceste probleme, a\u0219a c\u0103 m-am dus pe GitHub la dezvoltatori, \u00eentreb\u00e2ndu-i de ce instalarea conform instruc\u021biunilor lor d\u0103 erori \u00een interiorul codului lor.<\/p>\n<p><img decoding=\"async\" alt=\"Instalarea or-tools cu SCIP \u0219i GLPK \u00een mediu virtual Python 3.7 pe Linux\" src=\"\/wp-content\/uploads\/2020\/02\/997062c260ba5569bb755bbe757615bd.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Hmm, mul\u021bumesc pentru clarific\u0103ri<br \/>\n<\/i><br \/>\n\u00cen timp ce a\u0219teptam un r\u0103spuns pe GitHub, navigam pe internet, sper\u00e2nd s\u0103 g\u0103sesc ceva care s\u0103 m\u0103 ajute. \u0218i, paradoxal, am g\u0103sit. Era <noindex><a rel=\"nofollow\" href=\"http:\/\/or-tools.blogspot.com\/2017\/03\/linking-glpk-with-or-tools-on-unix.html\">blog<\/a><\/noindex> liderul de proiect, care a scris despre cum s\u0103 conectezi GLPK cu or-tools. \u0218i aceast\u0103 metod\u0103 a func\u021bionat \u00een sf\u00e2r\u0219it! Acum, dac\u0103 construiesc totul f\u0103r\u0103 SCIP, dar cu GLPK, func\u021bioneaz\u0103 chiar \u0219i a\u0219a. Este deja un progres.<\/p>\n<p>Cu toate acestea, liderul echipei or-tools a recomandat s\u0103 nu folosim GLPK, spun\u00e2nd c\u0103 rezultatele sunt mediocri \u0219i, totu\u0219i, vrem s\u0103 \u00eenvingem SCIP \u0219i s\u0103-l facem s\u0103 func\u021bioneze. Vecinul <noindex><a rel=\"nofollow\" href=\"http:\/\/or-tools.blogspot.com\/2017\/03\/changing-way-we-link-with-scip.html\">post<\/a><\/noindex> de pe blog m-a f\u0103cut s\u0103 m\u0103 g\u00e2ndesc c\u0103 pachetul Google func\u021bioneaz\u0103 cu anumite versiuni. S\u0103 vedem <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.google.com\/optimization\/support\/release_notes#support-for-scip-6.0.0\">lista modific\u0103rilor versiunilor<\/a><\/noindex> \u0219i vedem acolo o men\u021biune explicit\u0103 pentru versiunea 6.0.0. De\u0219i \u00een makefile este specificat\u0103 versiunea 6.0.2, \u00eencerc\u0103m s\u0103 instal\u0103m o versiune mai veche \u0219i, voila!<\/p>\n<p>Iat\u0103 din nou secven\u021ba corect\u0103 de ac\u021biuni.<br \/>\n<noindex><a rel=\"nofollow\" name=\"guide\"><\/a><\/noindex><\/p>\n<h2>Secven\u021ba de instalare<\/h2>\n<p><\/p>\n<ol>\n<li>Desc\u0103rca\u021bi arhiva SCIP, asigur\u00e2ndu-v\u0103 c\u0103 <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.google.com\/optimization\/support\/release_notes\">aici<\/a><\/noindex> este specificat\u0103 clar suportul pentru versiunea pe care o desc\u0103rca\u021bi (\u00een cazul meu, <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>) \u0219i dezarhiva\u021bi.<\/li>\n<li>Desc\u0103rca\u021bi GLPK (la momentul scrierii, ultima versiune este 4.65) \u0219i dezarhiva\u021bi.<\/li>\n<li>Instala\u021bi SCIP cu comanda\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>Instala\u021bi GLPK cu comanda:\n<pre><code class=\"bash\">.\/configure --prefix= --with-pic --enable-shared\nmake\nmake install\n<\/code><\/pre>\n<\/li>\n<li>Desc\u0103rca\u021bi OR-Tools de pe GitHub\n<pre><code class=\"bash\">git clone https:\/\/github.com\/google\/or-tools<\/code><\/pre>\n<\/li>\n<li>Instala\u021bi OR-Tools cu comenzile:\n<pre><code class=\"bash\">make third_party\nmake python_package\n<\/code><\/pre>\n<p>\nDac\u0103 ultimul comand\u0103 nu func\u021bioneaz\u0103, instaleaz\u0103 wheel cu comanda:<\/p>\n<pre><code class=\"bash\">pip install wheel<\/code><\/pre>\n<\/li>\n<li>Activeaz\u0103 mediul virtual, navigheaz\u0103 \u00een folderul cu pachetul Python \u0219i instaleaz\u0103-l de acolo.\n<p>Dac\u0103 trebuie s\u0103 instalezi nu \u00eentr-un mediu virtual, ci global pentru \u00eentreaga sistem\u0103 \u00een loc de:<\/p>\n<pre><code class=\"bash\">make python_package<\/code><\/pre>\n<p>\nexecuta\u021bi comanda:<\/p>\n<pre><code class=\"bash\">make python\n<\/code><\/pre>\n<\/li>\n<\/ol>\n<p>Sursa: <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.1 - 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\/ro\/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.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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\udd47Instalarea or-tools cu SCIP \u0219i GLPK \u00een mediul virtual Python 3.7 pe Linux | ProHoster","description":"Am decis s\u0103 particip la competi\u021bie \u0219i a fost necesar s\u0103 folosesc pachete pentru solu\u021bionarea problemelor de optimizare.","canonical_url":"https:\/\/prohoster.info\/ro\/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":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/41870","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=41870"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/41870\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/41871"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=41870"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=41870"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=41870"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}