{"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\/pl\/blog\/ustanovka-or-tools-s-scip-i-glpk-v-virtualnoe-okruzhenie-python-3-7-na-linux","title":{"rendered":"Instalacja or-tools z SCIP i GLPK w wirtualnym \u015brodowisku Python 3.7 na Linux","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Postanowi\u0142em wzi\u0105\u0107 udzia\u0142 w <noindex><a rel=\"nofollow\" href=\"https:\/\/www.kaggle.com\/c\/santa-workshop-tour-2019\">zawodach<\/a><\/noindex> i potrzebne mi by\u0142y pakiety do rozwi\u0105zywania problem\u00f3w optymalizacyjnych. Wybra\u0142em narz\u0119dzie Google or-tools, kt\u00f3re stanowi interfejs dla r\u00f3\u017cnych rozwi\u0105zywaczy. Zawiera kilka narz\u0119dzi optymalizacji, a tw\u00f3rcy deklaruj\u0105 wsparcie dla kilku zewn\u0119trznych pakiet\u00f3w, w tym komercyjnych Gurobi i CPLEX. Jednak nie jeste\u015bmy bogatymi lud\u017ami, wi\u0119c b\u0119dziemy korzysta\u0107 z darmowych SCIP i GLPK (a tak przy okazji, od krajowego dewelopera). Ku mojemu zaskoczeniu nie znalaz\u0142em \u017cadnej instrukcji dotycz\u0105cej uruchomienia tego ca\u0142ego wspania\u0142ego oprogramowania w wirtualnym \u015brodowisku Pythona, ani w polskim, ani angloj\u0119zycznym internecie, wi\u0119c musia\u0142em troch\u0119 si\u0119 pom\u0119czy\u0107. Dla tych, kt\u00f3rzy si\u0119 spiesz\u0105, czytajcie od razu <noindex><a rel=\"nofollow\" href=\"#guide\">tutaj<\/a><\/noindex>, innym polecam zapozna\u0107 si\u0119 z nieco w\u0105tpliwej jako\u015bci moj\u0105 grafomani\u0105, opisuj\u0105c\u0105 perypetie zwi\u0105zane z instalacj\u0105 oprogramowania Google. Tak, zapomnia\u0142em od razu powiedzie\u0107, \u017ce wszystko instalowa\u0142em w Manjaro Linux.<\/p>\n<p><img decoding=\"async\" alt=\"Instalacja or-tools z SCIP i GLPK w wirtualnym \u015brodowisku Python 3.7 na 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>Pierwsze kroki<\/h2>\n<p>\nWszystkie trzy pakiety znajduj\u0105 si\u0119 w repozytorium Pythona, wi\u0119c instalujemy je przez pip.<\/p>\n<p>Ka\u017cdy z nich ma w\u0142asny interfejs, a or-tools zosta\u0142 wybrany w\u0142a\u015bnie po to, aby pr\u00f3bowa\u0107 r\u00f3\u017cnych pakiet\u00f3w bez znacznego przepisywania programu, wi\u0119c celem jest to, aby or-tools po\u0142\u0105czy\u0142 te rozwi\u0105zywacze i umo\u017cliwi\u0142 ich uruchamianie przez siebie. I co my\u015blicie? Zainstalowany przez pip or-tools nie widzi zainstalowanych przez pip rozwi\u0105zywaczy, a one nie widz\u0105 jego (kto by pomy\u015bla\u0142). Oznacza to, \u017ce musz\u0119 jednak spojrze\u0107, co pisz\u0105 w <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.google.com\/optimization\/install\/python\/source_linux\">dokumentacji<\/a><\/noindex>.<br \/>\nDokumentach pisz\u0105, \u017ce trzeba zbudowa\u0107 z kodu \u017ar\u00f3d\u0142owego, aby or-tools po\u0142\u0105czy\u0142 zewn\u0119trzne pakiety. Pr\u00f3bujemy zbudowa\u0107, i nic nie wychodzi, poniewa\u017c zainstalowane przez pip rozwi\u0105zywacze s\u0105 niewidoczne. <br \/>\nZ tego wzgl\u0119du najprostsze sposoby instalacji wszystkich pakiet\u00f3w przez pip nie dzia\u0142aj\u0105, poniewa\u017c or-tools nie \u0142apie rozwi\u0105zywaczy, a rozwi\u0105zywacze nie instaluj\u0105 bibliotek tak, jak tego oczekuje or-tools, wszyscy wysypuj\u0105 na ciebie b\u0142\u0119dy, nazywaj\u0105 ci\u0119 g\u0142upim i w r\u00f3\u017cny spos\u00f3b si\u0119 z ciebie \u015bmiej\u0105. <\/p>\n<p>Dalej w <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.google.com\/optimization\/install\/python\/source_linux#install-the-scip-optimization-suite\">dokumentach<\/a><\/noindex> pisz\u0105, \u017ce trzeba budowa\u0107 rozwi\u0105zywacze z kodu \u017ar\u00f3d\u0142owego, a nast\u0119pnie z kodu \u017ar\u00f3d\u0142owego zbudowa\u0107 sam or-tools. Powiedziano-zrobiono! Zainstalowa\u0142em SCIP, zainstalowa\u0142em GLPK, ale pojawi\u0142 si\u0119 problem, kt\u00f3rego nie opisano w dokumentacji, jak zainstalowa\u0107 or-tools w wirtualnym \u015brodowisku. <\/p>\n<p>Jedynym poleceniem zapisanym w dokumentacji jest make python, kt\u00f3re instaluje pakiet globalnie w systemie (dziwne, prawda?).<\/p>\n<p>Na szcz\u0119\u015bcie uda\u0142o mi si\u0119: w trakcie in\u017cynierskiego poszukiwania metod\u0105 niesko\u0144czonych ma\u0142p, przypadkowo wpisa\u0142em polecenie make help, kt\u00f3re wy\u015bwietli\u0142o mi list\u0119 wszystkich opcji budowy or-tools, w tym mo\u017cliwo\u015b\u0107 zbudowania pakietu w formacie wheel. To polecenie to make python_package, \u017ceby by\u0142o jasne (powt\u00f3rz\u0119 je jeszcze raz na ko\u0144cu). No wi\u0119c, czy nadszed\u0142 czas, aby zacz\u0105\u0107 budowa\u0107 i uruchamia\u0107?<\/p>\n<p><img decoding=\"async\" alt=\"Instalacja or-tools z SCIP i GLPK w wirtualnym \u015brodowisku Python 3.7 na Linux\" src=\"\/wp-content\/uploads\/2020\/02\/5d00d11acb95cf881605a43ec9b5f86f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Szukamy problemu<\/h2>\n<p>\nNic nie dzia\u0142a podczas budowy or-tools, zg\u0142asza b\u0142\u0119dy zwi\u0105zane z z\u0142ymi bibliotekami GLPK.<\/p>\n<p><img decoding=\"async\" alt=\"Instalacja or-tools z SCIP i GLPK w wirtualnym \u015brodowisku Python 3.7 na Linux\" src=\"\/wp-content\/uploads\/2020\/02\/5a16f5dc082a46ee5cbcafa637de006f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBudowa z SCIP z parametrami z dokumentacji przebiega pomy\u015blnie, ale or-tools i tak odmawia dzia\u0142ania w momencie importu.<\/p>\n<p><img decoding=\"async\" alt=\"Instalacja or-tools z SCIP i GLPK w wirtualnym \u015brodowisku Python 3.7 na Linux\" src=\"\/wp-content\/uploads\/2020\/02\/acd6917b68c320a9bee5e71875c1f035.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNie znalaz\u0142em samodzielnie rozwi\u0105zania tych problem\u00f3w, wi\u0119c uda\u0142em si\u0119 na GitHub do deweloper\u00f3w, pytaj\u0105c, dlaczego instalacja zgodnie z ich instrukcjami wy\u015bwietla b\u0142\u0119dy gdzie\u015b w ich kodzie.<\/p>\n<p><img decoding=\"async\" alt=\"Instalacja or-tools z SCIP i GLPK w wirtualnym \u015brodowisku Python 3.7 na Linux\" src=\"\/wp-content\/uploads\/2020\/02\/997062c260ba5569bb755bbe757615bd.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Hmm, dzi\u0119kuj\u0119 za wyja\u015bnienia<br \/>\n<\/i><br \/>\nCzekaj\u0105c na odpowied\u017a na GitHubie, przeszukiwa\u0142em internet, maj\u0105c nadziej\u0119 znale\u017a\u0107 co\u015b, co mi pomo\u017ce. I jak to nie jest zaskakuj\u0105ce, znalaz\u0142em to. To by\u0142 <noindex><a rel=\"nofollow\" href=\"http:\/\/or-tools.blogspot.com\/2017\/03\/linking-glpk-with-or-tools-on-unix.html\">blog<\/a><\/noindex> lider projektu, kt\u00f3ry pisa\u0142 o tym, jak po\u0142\u0105czy\u0107 GLPK z or-tools. I ten spos\u00f3b w ko\u0144cu zadzia\u0142a\u0142! Teraz, je\u015bli budowa\u0107 wszystko bez SCIP, ale z GLPK, to jest to nawet wykonalne. Ju\u017c jaki\u015b post\u0119p.<\/p>\n<p>Jednak lider zespo\u0142u or-tools nie zaleca\u0142 u\u017cywania GLPK, m\u00f3wi\u0105c, \u017ce wyniki s\u0105 niezbyt dobre, a w ko\u0144cu chc\u0119 pokona\u0107 SCIP i zmusi\u0107 go do dzia\u0142ania. S\u0105siedni <noindex><a rel=\"nofollow\" href=\"http:\/\/or-tools.blogspot.com\/2017\/03\/changing-way-we-link-with-scip.html\">post<\/a><\/noindex> blog zwr\u00f3ci\u0142 mi uwag\u0119 na to, \u017ce pakiet Google'a dzia\u0142a z konkretnymi wersjami. Sprawdzamy <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.google.com\/optimization\/support\/release_notes#support-for-scip-6.0.0\">list\u0119 zmian wyda\u0144<\/a><\/noindex> i widzimy tam wyra\u017ane wskazanie wersji 6.0.0. Mimo \u017ce w pliku makefile jest wskazana wersja 6.0.2, pr\u00f3bujemy zainstalowa\u0107 starsz\u0105 wersj\u0119 i voil\u00e0!<\/p>\n<p>A teraz jeszcze raz dzia\u0142aj\u0105ca sekwencja dzia\u0142a\u0144.<br \/>\n<noindex><a rel=\"nofollow\" name=\"guide\"><\/a><\/noindex><\/p>\n<h2>Sekwencja instalacji<\/h2>\n<p><\/p>\n<ol>\n<li>Pobierz archiwum SCIP, upewniaj\u0105c si\u0119, \u017ce <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.google.com\/optimization\/support\/release_notes\">tutaj<\/a><\/noindex> wyra\u017anie wskazano wsparcie dla tej wersji, kt\u00f3r\u0105 pobierasz (w moim przypadku <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>) i rozpakuj.<\/li>\n<li>Pobierz GLPK (w momencie pisania posta ostatnia wersja to 4.65) i rozpakuj.<\/li>\n<li>Zainstaluj SCIP poleceniem\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>Zainstaluj GLPK poleceniem:\n<pre><code class=\"bash\">.\/configure --prefix= --with-pic --enable-shared\nmake\nmake install\n<\/code><\/pre>\n<\/li>\n<li>Pobierz OR-Tools z GitHuba\n<pre><code class=\"bash\">git clone https:\/\/github.com\/google\/or-tools<\/code><\/pre>\n<\/li>\n<li>Zainstaluj OR-Tools poleceniami:\n<pre><code class=\"bash\">make third_party\nmake python_package\n<\/code><\/pre>\n<p>\nJe\u015bli ostatnia komenda nie dzia\u0142a, zainstaluj wheel poleceniem:<\/p>\n<pre><code class=\"bash\">pip install wheel<\/code><\/pre>\n<\/li>\n<li>Aktywuj wirtualne \u015brodowisko, przejd\u017a do folderu z pakietem Pythona i zainstaluj go stamt\u0105d.\n<p>Je\u015bli chcesz zainstalowa\u0107 go nie w wirtualnym \u015brodowisku, a globalnie dla ca\u0142ego systemu, zamiast:<\/p>\n<pre><code class=\"bash\">make python_package<\/code><\/pre>\n<p>\nWykonaj polecenie:<\/p>\n<pre><code class=\"bash\">make python\n<\/code><\/pre>\n<\/li>\n<\/ol>\n<p>\u0179r\u00f3d\u0142o: <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.1.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\/pl\/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.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\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\/pl\/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\udd47Instalacja or-tools z SCIP i GLPK w wirtualnym \u015brodowisku Python 3.7 na Linuxie | ProHoster","description":"Postanowi\u0142em wzi\u0105\u0107 udzia\u0142 w zawodach i potrzebowa\u0142em do tego u\u017cy\u0107 pakiet\u00f3w do rozwi\u0105zywania problem\u00f3w z optymalizacj\u0105.","canonical_url":"https:\/\/prohoster.info\/pl\/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":"pl_PL","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\/pl\/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\/pl\/wp-json\/wp\/v2\/posts\/41870","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=41870"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/41870\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/41871"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=41870"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=41870"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=41870"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}