{"id":404089,"date":"2024-06-29T17:30:30","date_gmt":"2024-06-29T17:30:30","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=404089"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=404089","title":{"rendered":"<span>\u041c\u0435\u0442\u043e\u0434\u0438\u043a\u0430 \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u043e\u0432 Python \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u00ab\u041d\u0435\u0439\u0442\u0440\u0438\u043d\u043e\u00bb<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/ad4\/5ab\/8b6\/ad45ab8b601500934f10488df2288c09.jpg\" width=\"768\" height=\"432\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ad4\/5ab\/8b6\/ad45ab8b601500934f10488df2288c09.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u041c\u043d\u043e\u0433\u0438\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f (\u043c\u043e\u0434\u0443\u043b\u0438) <em>Python<\/em>\u00a0\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435\u00a0<em>\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0433\u043e<\/em>\u00a0<em>\u0431\u0430\u0439\u0442-\u043a\u043e\u0434\u0430<\/em>\u00a0\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0441 \u043b\u044e\u0431\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439. \u041e\u0434\u043d\u0430\u043a\u043e, \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435\u00a0<em>Py-\u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432<\/em> \u043b\u0438\u0448\u044c \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0430\u0441\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u0421\u0438 \u0438 \u0434\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0432\u0441\u0435\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0438\u0445 \u043f\u0440\u0435\u0434\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b. \u0412 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u041e\u0421 \u00ab\u041d\u0435\u0439\u0442\u0440\u0438\u043d\u043e\u00bb \u043f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 <a href=\"https:\/\/www.kpda.ru\/products\/kpda10964\/\">\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0448\u0438\u0440\u043e\u043a<\/a>.<\/p>\n<p>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u0431\u0449\u0438\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e <em>Python<\/em>-\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u0432 \u043d\u0430\u0448\u0443 \u041e\u0421. \u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0432\u043e\u0437\u044c\u043c\u0435\u043c <a href=\"https:\/\/numpy.org\"><em>NumPy<\/em><\/a>, \u0447\u0435\u0439 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u0442\u0430\u0434\u0438\u0438: \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 <em>Pyhton <\/em>\u043a\u043e\u0434 \u2192\u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f \u0432 \u0421\u0438 (<em>Cython<\/em>) \u2192 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u2192 \u0437\u0430\u043f\u0430\u043a\u043e\u0432\u043a\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0441 <em>wrapper<\/em>-\u0430\u043c\u0438 \u0434\u043b\u044f <em>Python<\/em>.<\/p>\n<hr\/>\n<h2>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f cross-\u0441\u0431\u043e\u0440\u043a\u0438<\/h2>\n<p>\u0412 \u0441\u043e\u0441\u0442\u0430\u0432 <a href=\"https:\/\/www.kpda.ru\/products\/komplrazrab\/\">\u041a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0430 \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 (\u041a\u0420)<\/a> \u043d\u0430\u0440\u044f\u0434\u0443 \u0441 <em>runtime<\/em>-\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438 \u0441\u0430\u043c\u043e\u0433\u043e <em>Python<\/em> \u0432\u0445\u043e\u0434\u0438\u0442 \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u043e\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f <a href=\"https:\/\/help.kpda.ru\/neutrino\/2021\/help\/topic\/ru.kpda.doc.dev_tools\/html\/articles\/python_cross_extensions.html\"><em>cross-\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439<\/em><\/a>. \u0421 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043a\u0430\u043a \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0443 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0442\u0430\u043a \u0438 \u0440\u0443\u0447\u043d\u0443\u044e \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c \u0443\u0440\u043e\u0432\u043d\u0435\u043c \u043a\u0430\u0441\u0442\u043e\u043c\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p>\u0421\u0440\u0430\u0437\u0443 \u0441\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 <em>cross<\/em>-\u0441\u0431\u043e\u0440\u043a\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 <em>Python<\/em> \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f <strong>\u0442\u043e\u043b\u044c\u043a\u043e<\/strong> \u0434\u043b\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u043e\u0432 <em>Linux<\/em>. \u0414\u043b\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0441\u0435\u0442\u0438.<\/p>\n<p>\u0412\u043e \u0438\u0437\u0431\u0435\u0436\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 (\u041a\u0420) \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 \u0432\u0435\u0440\u0441\u0438\u044e\u00a0<em>Python<\/em>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0438 \u0432 <em>runtime<\/em>-\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438. \u0422\u0430\u043a\u0436\u0435 \u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d <em>Python<\/em>-\u043c\u043e\u0434\u0443\u043b\u044c\u00a0<a href=\"https:\/\/pypi.org\/project\/crossenv\/\"><em>crossenv<\/em><\/a>, \u043e\u0434\u043d\u0430\u043a\u043e, \u044d\u0442\u043e \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u0435\u043c, \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 (\u0441\u043c. \u0434\u0430\u043b\u0435\u0435).<\/p>\n<p>\u041f\u0435\u0440\u0432\u043e-\u043d\u0430\u043f\u0435\u0440\u0432\u043e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c <a href=\"https:\/\/help.kpda.ru\/neutrino\/2021\/help\/topic\/ru.kpda.doc.dev_tools\/html\/utils\/Python\/P\/python-setup-crossenv.html\"><em>python-setup-crossenv.sh<\/em><\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0451\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u043e\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f. \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0437\u0434\u0435\u0441\u044c \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u043f\u0446\u0438\u044f <strong>-t<\/strong>, \u0437\u0430\u0434\u0430\u044e\u0449\u0430\u044f \u0446\u0435\u043b\u0435\u0432\u0443\u044e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443, \u0438 <em>\u043a\u0430\u0442\u0430\u043b\u043e\u0433<\/em>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442\u044b \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e-\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b. \u0422\u0430\u043a, \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<pre><code class=\"bash\">$ python-setup-crossenv.sh<\/code><\/pre>\n<p>\u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <code>.\/venv\/<\/code> \u0438 \u0432 \u043d\u0435\u043c \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440. \u041b\u043e\u0433 \u0435\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f:<\/p>\n<details class=\"spoiler\">\n<summary>\u041b\u043e\u0433 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u0430 python-setup-crossenv.sh<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">$ python-setup-crossenv.sh Creating virtual Python environment in \/home\/a-n-d\/venv... Building cross environment for python3.9 (x86)... done! Patching \/home\/a-n-d\/venv\/x86\/cross\/bin\/python3.9... done! Use \". \/home\/a-n-d\/venv\/x86\/bin\/activate\" command to enable cross environment for x86 platform. Building cross environment for python3.9 (armle-v7)... done! Patching \/home\/a-n-d\/venv\/armle-v7\/cross\/bin\/python3.9... done! Use \". \/home\/a-n-d\/venv\/armle-v7\/bin\/activate\" command to enable cross environment for armle-v7 platform. Building cross environment for python3.9 (ppcbe)... done! Patching \/home\/a-n-d\/venv\/ppcbe\/cross\/bin\/python3.9... done! Use \". \/home\/a-n-d\/venv\/ppcbe\/bin\/activate\" command to enable cross environment for ppcbe platform. Building cross environment for python3.9 (ppcbe-spe)... done! Patching \/home\/a-n-d\/venv\/ppcbe-spe\/cross\/bin\/python3.9... done! Use \". \/home\/a-n-d\/venv\/ppcbe-spe\/bin\/activate\" command to enable cross environment for ppcbe-spe platform. Building cross environment for python3.9 (mipsbe)... WARNING: CC is a compound command (['mips-unknown-nto-qnx6.5.0-gcc', '-EB']) WARNING: This can cause issues for modules that don't expect it. WARNING: Consider setting CC='mips-unknown-nto-qnx6.5.0-gcc' and CFLAGS='-EB' WARNING: CXX is a compound command (['mips-unknown-nto-qnx6.5.0-g++', '-EB']) WARNING: This can cause issues for modules that don't expect it. WARNING: Consider setting CXX='mips-unknown-nto-qnx6.5.0-g++' and CXXFLAGS='-EB' done! Patching \/home\/a-n-d\/venv\/mipsbe\/cross\/bin\/python3.9... done! Use \". \/home\/a-n-d\/venv\/mipsbe\/bin\/activate\" command to enable cross environment for mipsbe platform. Building cross environment for python3.9 (mipsle)... WARNING: CC is a compound command (['mips-unknown-nto-qnx6.5.0-gcc', '-EL']) WARNING: This can cause issues for modules that don't expect it. WARNING: Consider setting CC='mips-unknown-nto-qnx6.5.0-gcc' and CFLAGS='-EL' WARNING: CXX is a compound command (['mips-unknown-nto-qnx6.5.0-g++', '-EL']) WARNING: This can cause issues for modules that don't expect it. WARNING: Consider setting CXX='mips-unknown-nto-qnx6.5.0-g++' and CXXFLAGS='-EL' done! Patching \/home\/a-n-d\/venv\/mipsle\/cross\/bin\/python3.9... done! Use \". \/home\/a-n-d\/venv\/mipsle\/bin\/activate\" command to enable cross environment for mipsle platform. Building cross environment for python3.9 (e2kle)... done! Patching \/home\/a-n-d\/venv\/e2kle\/cross\/bin\/python3.9... done! Use \". \/home\/a-n-d\/venv\/e2kle\/bin\/activate\" command to enable cross environment for e2kle platform.<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0421\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 <em>cross<\/em>-\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f, \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 <strong>\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f<\/strong> \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0430 <em>Python<\/em>, \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u043c\u0438 \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438:<\/p>\n<pre><code class=\"bash\">$ . .\/venv\/x86\/bin\/activate (cross) $ cross-python3 ...<\/code><\/pre>\n<p>\u0414\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 \u0441\u0431\u043e\u0440\u043a\u0438 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0430\u043c\u0438 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 <code>.\/venv\/<\/code>, <code>.\/cache\/<\/code> \u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u041f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u0448\u0430\u0433\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043a \u0441\u0431\u043e\u0440\u043a\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u0438 \u0438\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 (<a href=\"https:\/\/packaging.python.org\/en\/latest\/discussions\/wheel-vs-egg\/\">\u043a \u0432\u043e\u043f\u0440\u043e\u0441\u0443 \u043e \u044f\u0439\u0446\u0430\u0445 \u0438 \u043a\u043e\u043b\u0451\u0441\u0430\u0445<\/a>).<\/p>\n<h2>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439<\/h2>\n<p>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435, \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0435\u0435 \u043f\u0430\u0442\u0447\u0435\u0439 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438. \u0418\u0445 \u0435\u0441\u0442\u044c \u0432 \u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <a href=\"https:\/\/pypi.org\/project\/human_math\/\">human_math<\/a>. \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c <em>cross<\/em>-\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u0438 \u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442 &#171;\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438&#187;:<\/p>\n<pre><code class=\"bash\">$ . .\/venv\/x86\/bin\/activate  (cross) $ cross-python3 -m pip install human_math Collecting human_math   Downloading human_math-0.1-py3-none-any.whl (13 kB) Installing collected packages: human-math Successfully installed human-math-0.1<\/code><\/pre>\n<p>\u041f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 <code>.\/venv\/x86\/cross\/lib\/python3.9\/site-packages\/<\/code> \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 <code>human_math\/<\/code>  \u0438 <code>human_math-0.1.dist-info\/<\/code>. \u041e\u0434\u0438\u043d \u0438\u0437 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u2014 \u0440\u0443\u043a\u0430\u043c\u0438 \u0437\u0430\u0442\u0430\u0449\u0438\u0442\u044c \u044d\u0442\u0438 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 \u043d\u0430 \u0442\u0430\u0440\u0433\u0435\u0442 \u0432 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e <code>\/usr\/lib\/python3.9\/site-packages<\/code>. \u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u043e, \u0438, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c \u0432 \u0430\u0440\u0445\u0438\u0432, \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u044b\u0439 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u0443:<\/p>\n<pre><code class=\"bash\">$ cd venv\/x86\/cross\/lib\/python3.9\/site-packages $ zip -r human_math-0.1-py3-none-any.whl human_math*<\/code><\/pre>\n<p>\u0418 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440, \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u043a\u0430\u0442\u0438\u0432 <em>pip<\/em> \u043f\u043e \u0435\u0433\u043e <a href=\"https:\/\/pip.pypa.io\/en\/stable\/installation\/#python\">\u0448\u0442\u0430\u0442\u043d\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438<\/a>. \u0412 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0441\u0447\u0435\u0442\u0435 \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442 <a href=\"https:\/\/pypi.org\/project\/human_math\/#description\">\u043f\u043e \u0432\u0430\u043d\u0438\u043b\u044c\u043d\u044b\u043c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f\u043c \u0430\u0432\u0442\u043e\u0440\u043e\u0432<\/a>:<\/p>\n<pre><code class=\"bash\">$ uname -a KPDA EAea7e68 20.09 2020\/09\/03-14:45:00-MSK x86pc x86 $ $ python -m ensurepip --upgrade ... Installing collected packages: setuptools, pip Successfully installed pip-20.2.3 setuptools-49.2.1 $ $ python3 -m pip install .\/human_math-0.1-py3-none-any.whl Processing .\/human_math-0.1-py3-none-any.whl Installing collected packages: human-math Successfully installed human-math-0.1 $ $ python3 Python 3.9.0 (default, Sep  3 2020, 14:45:00)  [GCC 4.8.3] Type \"help\", \"copyright\", \"credits\" or \"license\" for more information. >>> import human_math as hm >>> tree = hm.parse(\"2 - (-sin(3pi\/2)) - 3.0\") >>> tree ((2 - (-1 * sin(3 * (pi \/ 2)))) - 3) >>> tree.evaluate() -2<\/code><\/pre>\n<p>\u041f\u0440\u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0445 \u043b\u043e\u0433\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e <em>cross<\/em>-\u0441\u0431\u043e\u0440\u043a\u0438 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u0442\u0441\u044f. \u0414\u043b\u044f \u0440\u0430\u043d\u0434\u043e\u043c\u043d\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430 \u044d\u0442\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0437\u0430\u0432\u0435\u0434\u043e\u043c\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u0438 \u0441\u0442\u043e\u0438\u0442 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u044d\u043c\u043f\u0438\u0440\u0438\u0447\u0435\u0441\u043a\u0438 (\u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0430\u0439\u0434\u0435\u043d\u0430 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0438 \u043f\u0440\u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 <a href=\"https:\/\/pypi.org\">\u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u043f\u0430\u043a\u0435\u0442\u043e\u0432<\/a>, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0442\u043e\u0447\u043d\u043e). \u0424\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u043c <em>pip<\/em>, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u0441\u044e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u0443\u044e \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 <strong>\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u0440\u044f\u043c\u043e \u043d\u0430 \u0442\u0430\u0440\u0433\u0435\u0442\u0435<\/strong>. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u0438 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u2012 \u043e \u0447\u0435\u043c \u043d\u0430\u043c \u043d\u0430\u043c\u0435\u043a\u0430\u0435\u0442 \u043f\u043e\u0441\u0442\u0444\u0438\u043a\u0441 <code>-none-any<\/code> \u0432 \u0438\u043c\u0435\u043d\u0438 \u043f\u0430\u043a\u0435\u0442\u0430.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f. \u0412\u043e\u0437\u044c\u043c\u0435\u043c, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, <a href=\"https:\/\/pypi.org\/project\/polyleven\/\">\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u041b\u0435\u0432\u0435\u043d\u0448\u0442\u0435\u0439\u043d\u0430<\/a>. \u0417\u0430\u044f\u0432\u043b\u0435\u043d\u043e, \u0447\u0442\u043e \u043e\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0430 \u0421\u0438 \u0438 <em>Python<\/em>. \u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u0436\u0435, \u0440\u0430\u0437\u0432\u0435 \u0447\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432\u044b\u0437\u043e\u0432\u0443 <code>pip install<\/code> \u0432\u0435\u0440\u0431\u043e\u0437\u043d\u043e\u0441\u0442\u0438, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u0432\u0438\u0434\u0435\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430 \u0432\u044b\u0437\u043e\u0432\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430:<\/p>\n<details class=\"spoiler\">\n<summary>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043b\u043e\u0433\u0430 \u0441\u0431\u043e\u0440\u043a\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f polyleven<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">$ python-setup-crossenv.sh -tx86 Creating virtual Python environment in \/home\/a-n-d\/venv... Building cross environment for python3.9 (x86)... done! Patching \/home\/a-n-d\/venv\/x86\/cross\/bin\/python3.9... done! Use \". \/home\/a-n-d\/venv\/x86\/bin\/activate\" command to enable cross environment for x86 platform. $ $ . .\/venv\/x86\/bin\/activate (cross) $ (cross) $ cross-python3 -m pip install -v polyleven Using pip 20.2.3 from \/home\/a-n-d\/venv\/x86\/build\/lib\/python3.9\/site-packages\/pip (python 3.9) Non-user install because user site-packages disabled Created temporary directory: \/tmp\/pip-ephem-wheel-cache-fg_fuga_ Created temporary directory: \/tmp\/pip-req-tracker-f3sa3exq Initialized build tracking at \/tmp\/pip-req-tracker-f3sa3exq Created build tracker: \/tmp\/pip-req-tracker-f3sa3exq Entered build tracker: \/tmp\/pip-req-tracker-f3sa3exq Created temporary directory: \/tmp\/pip-install-kfgre1ru 1 location(s) to search for versions of polyleven: * https:\/\/pypi.org\/simple\/polyleven\/ Fetching project page and analyzing links: ... Given no hashes to check 6 links for project 'polyleven': discarding no candidates Using version 0.8 (newest of versions: 0.3, 0.4, 0.5, 0.6, 0.7, 0.8) Collecting polyleven   Created temporary directory: \/tmp\/pip-unpack-mg3leorj   Starting new HTTPS connection (1): files.pythonhosted.org:443   https:\/\/files.pythonhosted.org:443 \"GET ... polyleven-0.8.tar.gz HTTP\/1.1\" 200 6373   Downloading polyleven-0.8.tar.gz (6.4 kB)   Added polyleven from https:\/\/...     Running setup.py (path:\/tmp\/pip-install-kfgre1ru\/polyleven\/setup.py) egg_info for package polyleven     Created temporary directory: \/tmp\/pip-pip-egg-info-kpfd_tqt     Running command python setup.py egg_info     running egg_info     creating \/tmp\/pip-pip-egg-info-kpfd_tqt\/polyleven.egg-info     writing \/tmp\/pip-pip-egg-info-kpfd_tqt\/polyleven.egg-info\/PKG-INFO     writing dependency_links to \/tmp\/pip-pip-egg-info-kpfd_tqt\/polyleven.egg-info\/dependency_links.txt     writing top-level names to \/tmp\/pip-pip-egg-info-kpfd_tqt\/polyleven.egg-info\/top_level.txt     writing manifest file '\/tmp\/pip-pip-egg-info-kpfd_tqt\/polyleven.egg-info\/SOURCES.txt'     reading manifest file '\/tmp\/pip-pip-egg-info-kpfd_tqt\/polyleven.egg-info\/SOURCES.txt'     reading manifest template 'MANIFEST.in'     warning: no files found matching 'README.md'     writing manifest file '\/tmp\/pip-pip-egg-info-kpfd_tqt\/polyleven.egg-info\/SOURCES.txt'   Source in \/tmp\/pip-install-kfgre1ru\/polyleven has version 0.8, which satisfies requirement polyleven from https:\/\/...   Removed polyleven from https:\/\/... Using legacy 'setup.py install' for polyleven, since package 'wheel' is not installed. Installing collected packages: polyleven   Created temporary directory: \/tmp\/pip-record-m5pksfmh     Running command \/home\/a-n-d\/venv\/x86\/cross\/bin\/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '\"'\"'\/tmp\/pip-install-kfgre1ru\/polyleven\/setup.py'\"'\"'; __file__='\"'\"'\/tmp\/pip-install-kfgre1ru\/polyleven\/setup.py'\"'\"';f=getattr(tokenize, '\"'\"'open'\"'\"', open)(__file__);code=f.read().replace('\"'\"'\\r\\n'\"'\"', '\"'\"'\\n'\"'\"');f.close();exec(compile(code, __file__, '\"'\"'exec'\"'\"'))' install --record \/tmp\/pip-record-m5pksfmh\/install-record.txt --single-version-externally-managed --compile --install-headers \/home\/a-n-d\/venv\/x86\/cross\/include\/site\/python3.9\/polyleven     running install     running build     running build_ext     building 'polyleven' extension     creating build     creating build\/temp.qnx--i486-3.9     i486-pc-nto-qnx6.5.0-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -fno-aggressive-loop-optimizations -fPIC -D_QNX_SOURCE -std=c99 -DNDEBUG -g3 -I. -I. -I. -I. -I. -I. -I. -I. -I. -DBUILDENV_qss -D__KPDA__ -D__KPDANTO__ -I\/home\/a-n-d\/venv\/x86\/cross\/include -I\/opt\/kpda2020\/target\/neutrino\/x86\/usr\/include\/python3.9 -c polyleven.c -o build\/temp.qnx--i486-3.9\/polyleven.o     creating build\/lib.qnx--i486-3.9     i486-pc-nto-qnx6.5.0-gcc -shared -L. -L. -L. -L. -L. build\/temp.qnx--i486-3.9\/polyleven.o -o build\/lib.qnx--i486-3.9\/polyleven.so     running install_lib     copying build\/lib.qnx--i486-3.9\/polyleven.so -> \/home\/a-n-d\/venv\/x86\/cross\/lib\/python3.9\/site-packages     running install_egg_info     running egg_info     writing polyleven.egg-info\/PKG-INFO     writing dependency_links to polyleven.egg-info\/dependency_links.txt     writing top-level names to polyleven.egg-info\/top_level.txt     reading manifest file 'polyleven.egg-info\/SOURCES.txt'     reading manifest template 'MANIFEST.in'     warning: no files found matching 'README.md'     writing manifest file 'polyleven.egg-info\/SOURCES.txt'     Copying polyleven.egg-info to \/home\/a-n-d\/venv\/x86\/cross\/lib\/python3.9\/site-packages\/polyleven-0.8-py3.9.egg-info     running install_scripts     writing list of installed files to '\/tmp\/pip-record-m5pksfmh\/install-record.txt'     Running setup.py install for polyleven ... done Successfully installed polyleven-0.8<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0421\u0431\u043e\u0440\u043a\u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0448\u043b\u0430 \u0432 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435, \u043d\u043e, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430, \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u0430 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u043f\u0440\u0435\u0434\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 (\u0441\u043c. \u0432 \u043b\u043e\u0433\u0435 <code>-gcc<\/code>),  \u043e\u0434\u043d\u0430\u043a\u043e, \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043e\u0431 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u0430 <code>wheel<\/code>. \u0415\u0441\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e, \u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f <a href=\"https:\/\/packaging.python.org\/en\/latest\/glossary\/#term-Wheel\">\u043a\u043e\u043b\u0435\u0441\u0430<\/a>:<\/p>\n<pre><code class=\"bash\">$ cd venv\/x86\/cross\/lib\/python3.9\/site-packages $ zip -r polyleven-0.8-py3-none-any.whl polyleven*<\/code><\/pre>\n<p>\u0412 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0441\u0447\u0435\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043d\u0430 \u0442\u0430\u0440\u0433\u0435\u0442\u0435 \u043f\u043e <a href=\"https:\/\/pypi.org\/project\/polyleven\/\">\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0435<\/a>:<\/p>\n<pre><code class=\"bash\">$ python3 -m pip install .\/polyleven-0.8-py3-none-any.whl Processing .\/polyleven-0.8-py3-none-any.whl Installing collected packages: polyleven Successfully installed polyleven-0.8 $ $ python3 Python 3.9.0 (default, Sep  3 2020, 14:45:00)  [GCC 4.8.3] Type \"help\", \"copyright\", \"credits\" or \"license\" for more information. >>> from polyleven import levenshtein >>> levenshtein('aaa', 'ccc') 3 >>> levenshtein('deadbeef', 'coffee') 6<\/code><\/pre>\n<p>\u041f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f <strong>\u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 <em>cross<\/em>-\u0441\u0431\u043e\u0440\u043a\u0438<\/strong> \u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435.<\/p>\n<p>\u041d\u043e \u043d\u0435 \u0432\u0441\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u044b.<\/p>\n<h2>\u0420\u0443\u0447\u043d\u043e\u0439 \u0440\u0435\u0436\u0438\u043c \u0441\u0431\u043e\u0440\u043a\u0438 \u0438 \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432<\/h2>\n<figure class=\"float\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3ff\/575\/1b4\/3ff5751b450db5061ced5c6ecd016bd5.png\" width=\"300\" height=\"150\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3ff\/575\/1b4\/3ff5751b450db5061ced5c6ecd016bd5.png\"\/><\/figure>\n<p>\u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0441\u0431\u043e\u0440\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430. \u0422\u0430\u043a, \u0432\u0441\u0435\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 <a href=\"https:\/\/numpy.org\"><em>NumPy<\/em><\/a>, \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0431\u043e\u043b\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0441\u0442\u0430\u0434\u0438\u0438: \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 <em>Pyhton <\/em>\u043a\u043e\u0434 \u2192\u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f \u0447\u0430\u0441\u0442\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u0432 \u0421\u0438 (<em>Cython<\/em>) \u2192 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f (<em>GCC<\/em>) \u2192 \u0437\u0430\u043f\u0430\u043a\u043e\u0432\u043a\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0441 <em>wrapper<\/em>-\u0430\u043c\u0438 \u0434\u043b\u044f <em>Python<\/em>.<\/p>\n<p>\u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u043d\u0430 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0430 \u0442\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b\u0430\u0441\u044c \u043d\u0430 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u043e\u043c \u041e\u0421 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438):<\/p>\n<pre><code class=\"bash\">$ git clone https:\/\/github.com\/numpy\/numpy.git $ cd numpy\/ $ git checkout v1.20.2<\/code><\/pre>\n<p>\u041f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u044f \u043a \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e, \u0437\u0430\u043f\u0430\u0441\u0451\u043c\u0441\u044f \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u043c \u0434\u043b\u044f \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0441\u0431\u043e\u0440\u043a\u0438, \u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u0432 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 <em>cross<\/em>-\u0441\u0431\u043e\u0440\u043a\u0438. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u043f\u043e \u0441\u0431\u043e\u0440\u043a\u0435, \u0440\u0430\u0437\u043c\u0435\u0449\u0451\u043d\u043d\u044b\u0435 <a href=\"https:\/\/github.com\/numpy\/numpy\/blob\/main\/INSTALL.rst\">\u0432 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438<\/a> \u0438 \u0442\u0443\u0442 \u0436\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043e\u0448\u0438\u0431\u043a\u0443 \u0432\u0438\u0434\u0430:<\/p>\n<pre><code class=\"bash\">(cross) $ cross-python3 setup.py build -j16 install --prefix \/home\/a-n-d\/install\/ Running from numpy source directory. ... ModuleNotFoundError: No module named 'Cython'<\/code><\/pre>\n<p>\u0411\u0435\u0448\u0435\u043d\u043e\u0439 \u0441\u043e\u0431\u0430\u043a\u0435, \u043a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f&#8230; \u0417\u0430\u0431\u0435\u0433\u0430\u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0432\u043f\u0435\u0440\u0451\u0434, \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e <em>Cython<\/em>, \u043d\u043e \u0438 \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u043f\u0430\u043a\u0435\u0442 (\u0435\u0441\u043b\u0438 \u043e\u043d \u043d\u0435 \u0431\u044b\u043b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u043f\u0440\u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430).<\/p>\n<pre><code class=\"bash\">(cross) $ cross-pip3 install wheel (cross) $ cross-pip3 install Cython (cross) $ cross-python3 setup.py build -j16 install --prefix \/home\/a-n-d\/install\/ ...<\/code><\/pre>\n<p>\u0414\u043e \u0441\u0432\u043e\u0435\u0433\u043e \u0444\u0438\u043d\u0430\u043b\u0430 \u0441\u0431\u043e\u0440\u043a\u0430 \u043d\u0435 \u0434\u043e\u0439\u0434\u0435\u0442, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 <em>NumPy<\/em> \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430. \u0414\u043b\u044f \u0432\u044b\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0447\u0438\u043d \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432\u0441\u0435\u0433\u0434\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0441\u0442\u043e\u0438\u0442 \u0441 \u0447\u0442\u0435\u043d\u0438\u044f \u043b\u043e\u0433\u043e\u0432 \u0441\u0431\u043e\u0440\u043a\u0438 \u0438, \u0447\u0442\u043e \u0435\u0449\u0451 \u0432\u0430\u0436\u043d\u0435\u0435, \u0438\u0445 <u>\u043e\u0441\u043e\u0437\u043d\u0430\u043d\u0438\u044f<\/u>. \u0418\u0437 \u0433\u0443\u043c\u0430\u043d\u043d\u044b\u0445 \u0441\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0441\u0430\u043c\u0438 \u043b\u043e\u0433\u0438 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0435 \u0441\u0442\u0430\u043d\u0443. \u041f\u0430\u0442\u0447 \u0436\u0435 \u043a \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u043c \u0438\u043c\u0435\u0435\u0442 \u0432\u0438\u0434:<\/p>\n<pre><code class=\"cpp\">numpy\/distutils\/ccompiler_opt.py: @ -894,3 +894,3 @@ class _CCompiler(object):             (\"cc_on_x64\",      \".*(x|x86_|amd)64.*\"), ---            (\"cc_on_x86\",      \".*(win32|x86|i386|i686).*\"), +++            (\"cc_on_x86\",      \".*(win32|x86|i386|i486|i686).*\"),             (\"cc_on_ppc64le\",  \".*(powerpc|ppc)64(el|le).*\"), <\/code><\/pre>\n<p>\u0412\u0441\u044f \u0441\u0431\u043e\u0440\u043a\u0430 \u0432 16 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u043d\u0430 <em>Ryzen 7 5700G<\/em> \/ <em>HDD<\/em> \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u043a\u043e\u043b\u043e \u043f\u043e\u043b\u0443\u0442\u043e\u0440\u0430 \u043c\u0438\u043d\u0443\u0442. \u041f\u043e \u0444\u0430\u043a\u0442\u0443 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f <a href=\"https:\/\/packaging.python.org\/en\/latest\/glossary\/#term-Egg\">\u044f\u0439\u0446\u043e<\/a>. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043c, \u043f\u0440\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0438, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438 <a href=\"https:\/\/packaging.python.org\/en\/latest\/glossary\/#term-Wheel\">\u043a\u043e\u043b\u0435\u0441\u043e<\/a>:<\/p>\n<pre><code>(cross) $ cross-python3 setup.py sdist bdist_wheel<\/code><\/pre>\n<p>\u041f\u043e\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u0441 \u043d\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0440\u043e\u0432\u043d\u043e \u0442\u0430\u043a\u0436\u0435, \u043a\u0430\u043a \u0438 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435. \u0415\u0441\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438 \u043f\u043e \u043a\u0430\u043a\u0438\u043c-\u0442\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442, \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0434\u043b\u044f \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0442\u0438\u0440\u0430\u0436\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0442\u0430\u0440\u0433\u0435\u0442\u0435(-\u0430\u0445) \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u0432 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438. \u0412 \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c <a href=\"https:\/\/numpy.org\">\u043f\u0435\u0440\u0432\u0438\u0447\u043d\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438<\/a>, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u0443\u044e \u0430\u0432\u0442\u043e\u0440\u0430\u043c\u0438 \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0441\u0430\u0439\u0442\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430:<\/p>\n<pre><code class=\"bash\">$ python3 -m pip install .\/numpy-1.20.2-py3-none-any.whl Processing .\/numpy-1.20.2-py3-none-any.whl Installing collected packages: numpy Successfully installed numpy-1.20.2 $ $ python3 Python 3.9.0 (default, Sep  3 2020, 14:45:00)  [GCC 4.8.3] Type \"help\", \"copyright\", \"credits\" or \"license\" for more information. >>> import numpy as np >>> x = np.arange(15, dtype=np.int64).reshape(3, 5) >>> x[1:, ::2] = -99 >>> x array([[  0,   1,   2,   3,   4],        [-99,   6, -99,   8, -99],        [-99,  11, -99,  13, -99]], dtype=int64) >>> x.max(axis=1) array([ 4,  8, 13], dtype=int64) >>> rng = np.random.default_rng() >>> samples = rng.normal(size=2500) >>> samples array([ 1.32379234,  0.29264934, -1.03925619, ..., -0.68672435,        -1.55879728,  1.21000793])<\/code><\/pre>\n<p>\u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u0430\u0445 \u0430\u0432\u0442\u043e\u0440\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u044e\u0442 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0434\u043b\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u043d\u043e\u0432\u043e\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435. \u041f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <a href=\"https:\/\/redlibssh2.readthedocs.io\/en\/latest\/installation.html#standard-build\"><em>Redlibssh2<\/em><\/a> (\u0441\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u044b &#171;<em>System library build<\/em>&#187; \u0438 &#171;<em>Custom Compiler Configuration<\/em>&#171;). \u041d\u043e \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u044e\u0442 \u043b\u0438\u0448\u044c \u0434\u043e\u0431\u0440\u043e\u0441\u043e\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438. \u0412 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445, \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0438 <em>NumPy<\/em>, \u043e\u0431\u044b\u0447\u043d\u043e \u0441 \u044d\u0442\u0438\u043c \u043d\u0435 \u0437\u0430\u043c\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f. \u0410 \u0444\u0438\u043a\u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u0438\/\u0438\u043b\u0438 \u043f\u0440\u0430\u0432\u0438\u043b \u0441\u0431\u043e\u0440\u043a\u0438 \u043a\u0430\u043a \u0440\u0430\u0437 \u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 <strong>\u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u0442\u0440\u0443\u0434\u043e\u0435\u043c\u043a\u043e\u0441\u0442\u044c<\/strong> \u043f\u0440\u0438 \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438.<\/p>\n<p>P.S. \u041f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0447\u0435\u0440\u0435\u0437 <em>pip<\/em> \u043d\u0430 \u0442\u0430\u0440\u0433\u0435\u0442\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0432 \u0438\u043c\u0435\u043d\u0438 \u043a\u043e\u043b\u0435\u0441\u0430 \u043d\u0430 <em>any<\/em>, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0448\u0442\u0430\u0442\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 <em>setup.py<\/em> \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u043f\u0430\u043a\u0435\u0442.<\/p>\n<p>P.P.S. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/openart.ai\">\u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c\u044e<\/a> \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0440\u044f\u0434 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0439, \u0430 \u0432\u044b\u043a\u0438\u0434\u044b\u0432\u0430\u0442\u044c \u0436\u0430\u043b\u043a\u043e:<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u0435\u0440\u043f\u0435\u043d\u0442\u0430\u0440\u0438\u0439<\/summary>\n<div class=\"spoiler__content\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/c7a\/972\/2b2\/c7a9722b25c2c99cf6e027de4197580d.jpg\" width=\"768\" height=\"448\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c7a\/972\/2b2\/c7a9722b25c2c99cf6e027de4197580d.jpg\" data-blurred=\"true\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/cf4\/5fa\/435\/cf45fa4350b9fd87c21431153b61698e.jpg\" width=\"768\" height=\"432\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cf4\/5fa\/435\/cf45fa4350b9fd87c21431153b61698e.jpg\" data-blurred=\"true\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/7a0\/381\/dad\/7a0381dadf8f109e022aa0710a86a03d.jpg\" width=\"768\" height=\"448\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7a0\/381\/dad\/7a0381dadf8f109e022aa0710a86a03d.jpg\" data-blurred=\"true\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/9f8\/98a\/4ad\/9f898a4adda572c3cf32cbb058e298e3.jpg\" width=\"768\" height=\"600\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9f8\/98a\/4ad\/9f898a4adda572c3cf32cbb058e298e3.jpg\" data-blurred=\"true\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/b89\/632\/9f2\/b896329f2ce449f2013ae10272196b2e.jpg\" width=\"768\" height=\"432\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b89\/632\/9f2\/b896329f2ce449f2013ae10272196b2e.jpg\" data-blurred=\"true\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/332\/58b\/e23\/33258be234660f6c39686540f54880ef.jpg\" width=\"768\" height=\"432\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/332\/58b\/e23\/33258be234660f6c39686540f54880ef.jpg\" data-blurred=\"true\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/197\/acf\/257\/197acf257fc2a8cca337bf8050163e4a.jpg\" width=\"768\" height=\"600\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/197\/acf\/257\/197acf257fc2a8cca337bf8050163e4a.jpg\" data-blurred=\"true\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/859\/303\/d32\/859303d32a4bfcfc93be679f6ebb46d6.jpg\" width=\"768\" height=\"432\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/859\/303\/d32\/859303d32a4bfcfc93be679f6ebb46d6.jpg\" data-blurred=\"true\"\/><\/figure>\n<\/p>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/726196\/\"> https:\/\/habr.com\/ru\/articles\/726196\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><\/figure>\n<p>\u041c\u043d\u043e\u0433\u0438\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f (\u043c\u043e\u0434\u0443\u043b\u0438) <em>Python<\/em>\u00a0\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435\u00a0<em>\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0433\u043e<\/em>\u00a0<em>\u0431\u0430\u0439\u0442-\u043a\u043e\u0434\u0430<\/em>\u00a0\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0441 \u043b\u044e\u0431\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439. \u041e\u0434\u043d\u0430\u043a\u043e, \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435\u00a0<em>Py-\u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432<\/em> \u043b\u0438\u0448\u044c \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0430\u0441\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u0421\u0438 \u0438 \u0434\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0432\u0441\u0435\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0438\u0445 \u043f\u0440\u0435\u0434\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b. \u0412 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u041e\u0421 \u00ab\u041d\u0435\u0439\u0442\u0440\u0438\u043d\u043e\u00bb \u043f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 <a href=\"https:\/\/www.kpda.ru\/products\/kpda10964\/\">\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0448\u0438\u0440\u043e\u043a<\/a>.<\/p>\n<p>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u0431\u0449\u0438\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e <em>Python<\/em>-\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u0432 \u043d\u0430\u0448\u0443 \u041e\u0421. \u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0432\u043e\u0437\u044c\u043c\u0435\u043c <a href=\"https:\/\/numpy.org\"><em>NumPy<\/em><\/a>, \u0447\u0435\u0439 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u0442\u0430\u0434\u0438\u0438: \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 <em>Pyhton <\/em>\u043a\u043e\u0434 \u2192\u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f \u0432 \u0421\u0438 (<em>Cython<\/em>) \u2192 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u2192 \u0437\u0430\u043f\u0430\u043a\u043e\u0432\u043a\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0441 <em>wrapper<\/em>-\u0430\u043c\u0438 \u0434\u043b\u044f <em>Python<\/em>.<\/p>\n<hr\/>\n<h2>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f cross-\u0441\u0431\u043e\u0440\u043a\u0438<\/h2>\n<p>\u0412 \u0441\u043e\u0441\u0442\u0430\u0432 <a href=\"https:\/\/www.kpda.ru\/products\/komplrazrab\/\">\u041a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0430 \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 (\u041a\u0420)<\/a> \u043d\u0430\u0440\u044f\u0434\u0443 \u0441 <em>runtime<\/em>-\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438 \u0441\u0430\u043c\u043e\u0433\u043e <em>Python<\/em> \u0432\u0445\u043e\u0434\u0438\u0442 \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u043e\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f <a href=\"https:\/\/help.kpda.ru\/neutrino\/2021\/help\/topic\/ru.kpda.doc.dev_tools\/html\/articles\/python_cross_extensions.html\"><em>cross-\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439<\/em><\/a>. \u0421 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043a\u0430\u043a \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0443 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0442\u0430\u043a \u0438 \u0440\u0443\u0447\u043d\u0443\u044e \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c \u0443\u0440\u043e\u0432\u043d\u0435\u043c \u043a\u0430\u0441\u0442\u043e\u043c\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p>\u0421\u0440\u0430\u0437\u0443 \u0441\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 <em>cross<\/em>-\u0441\u0431\u043e\u0440\u043a\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 <em>Python<\/em> \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f <strong>\u0442\u043e\u043b\u044c\u043a\u043e<\/strong> \u0434\u043b\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u043d\u0430 \u0431\u0430\u0437\u0435 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u043e\u0432 <em>Linux<\/em>. \u0414\u043b\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0441\u0435\u0442\u0438.<\/p>\n<p>\u0412\u043e \u0438\u0437\u0431\u0435\u0436\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 (\u041a\u0420) \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 \u0432\u0435\u0440\u0441\u0438\u044e\u00a0<em>Python<\/em>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0438 \u0432 <em>runtime<\/em>-\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438. \u0422\u0430\u043a\u0436\u0435 \u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d <em>Python<\/em>-\u043c\u043e\u0434\u0443\u043b\u044c\u00a0<a href=\"https:\/\/pypi.org\/project\/crossenv\/\"><em>crossenv<\/em><\/a>, \u043e\u0434\u043d\u0430\u043a\u043e, \u044d\u0442\u043e \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u0435\u043c, \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 (\u0441\u043c. \u0434\u0430\u043b\u0435\u0435).<\/p>\n<p>\u041f\u0435\u0440\u0432\u043e-\u043d\u0430\u043f\u0435\u0440\u0432\u043e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c <a href=\"https:\/\/help.kpda.ru\/neutrino\/2021\/help\/topic\/ru.kpda.doc.dev_tools\/html\/utils\/Python\/P\/python-setup-crossenv.html\"><em>python-setup-crossenv.sh<\/em><\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0451\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u043e\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f. \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0437\u0434\u0435\u0441\u044c \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u043f\u0446\u0438\u044f <strong>-t<\/strong>, \u0437\u0430\u0434\u0430\u044e\u0449\u0430\u044f \u0446\u0435\u043b\u0435\u0432\u0443\u044e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443, \u0438 <em>\u043a\u0430\u0442\u0430\u043b\u043e\u0433<\/em>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442\u044b \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e-\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b. \u0422\u0430\u043a, \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<pre><code class=\"bash\">$ python-setup-crossenv.sh<\/code><\/pre>\n<p>\u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <code>.\/venv\/<\/code> \u0438 \u0432 \u043d\u0435\u043c \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440. \u041b\u043e\u0433 \u0435\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f:<\/p>\n<details class=\"spoiler\">\n<summary>\u041b\u043e\u0433 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u0430 python-setup-crossenv.sh<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">$ python-setup-crossenv.sh Creating virtual Python environment in \/home\/a-n-d\/venv... Building cross environment for python3.9 (x86)... done! Patching \/home\/a-n-d\/venv\/x86\/cross\/bin\/python3.9... done! Use \". \/home\/a-n-d\/venv\/x86\/bin\/activate\" command to enable cross environment for x86 platform. Building cross environment for python3.9 (armle-v7)... done! Patching \/home\/a-n-d\/venv\/armle-v7\/cross\/bin\/python3.9... done! Use \". \/home\/a-n-d\/venv\/armle-v7\/bin\/activate\" command to enable cross environment for armle-v7 platform. Building cross environment for python3.9 (ppcbe)... done! Patching \/home\/a-n-d\/venv\/ppcbe\/cross\/bin\/python3.9... done! Use \". \/home\/a-n-d\/venv\/ppcbe\/bin\/activate\" command to enable cross environment for ppcbe platform. Building cross environment for python3.9 (ppcbe-spe)... done! Patching \/home\/a-n-d\/venv\/ppcbe-spe\/cross\/bin\/python3.9... done! Use \". \/home\/a-n-d\/venv\/ppcbe-spe\/bin\/activate\" command to enable cross environment for ppcbe-spe platform. Building cross environment for python3.9 (mipsbe)... WARNING: CC is a compound command (['mips-unknown-nto-qnx6.5.0-gcc', '-EB']) WARNING: This can cause issues for modules that don't expect it. WARNING: Consider setting CC='mips-unknown-nto-qnx6.5.0-gcc' and CFLAGS='-EB' WARNING: CXX is a compound command (['mips-unknown-nto-qnx6.5.0-g++', '-EB']) WARNING: This can cause issues for modules that don't expect it. WARNING: Consider setting CXX='mips-unknown-nto-qnx6.5.0-g++' and CXXFLAGS='-EB' done! Patching \/home\/a-n-d\/venv\/mipsbe\/cross\/bin\/python3.9... done! Use \". \/home\/a-n-d\/venv\/mipsbe\/bin\/activate\" command to enable cross environment for mipsbe platform. Building cross environment for python3.9 (mipsle)... WARNING: CC is a compound command (['mips-unknown-nto-qnx6.5.0-gcc', '-EL']) WARNING: This can cause issues for modules that don't expect it. WARNING: Consider setting CC='mips-unknown-nto-qnx6.5.0-gcc' and CFLAGS='-EL' WARNING: CXX is a compound command (['mips-unknown-nto-qnx6.5.0-g++', '-EL']) WARNING: This can cause issues for modules that don't expect it. WARNING: Consider setting CXX='mips-unknown-nto-qnx6.5.0-g++' and CXXFLAGS='-EL' done! Patching \/home\/a-n-d\/venv\/mipsle\/cross\/bin\/python3.9... done! Use \". \/home\/a-n-d\/venv\/mipsle\/bin\/activate\" command to enable cross environment for mipsle platform. Building cross environment for python3.9 (e2kle)... done! Patching \/home\/a-n-d\/venv\/e2kle\/cross\/bin\/python3.9... done! Use \". \/home\/a-n-d\/venv\/e2kle\/bin\/activate\" command to enable cross environment for e2kle platform.<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0421\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 <em>cross<\/em>-\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f, \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 <strong>\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f<\/strong> \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0430 <em>Python<\/em>, \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u043c\u0438 \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438:<\/p>\n<pre><code class=\"bash\">$ . .\/venv\/x86\/bin\/activate (cross) $ cross-python3 ...<\/code><\/pre>\n<p>\u0414\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 \u0441\u0431\u043e\u0440\u043a\u0438 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0430\u043c\u0438 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 <code>.\/venv\/<\/code>, <code>.\/cache\/<\/code> \u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u041f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u0448\u0430\u0433\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043a \u0441\u0431\u043e\u0440\u043a\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u0438 \u0438\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 (<a href=\"https:\/\/packaging.python.org\/en\/latest\/discussions\/wheel-vs-egg\/\">\u043a \u0432\u043e\u043f\u0440\u043e\u0441\u0443 \u043e \u044f\u0439\u0446\u0430\u0445 \u0438 \u043a\u043e\u043b\u0451\u0441\u0430\u0445<\/a>).<\/p>\n<h2>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439<\/h2>\n<p>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435, \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0435\u0435 \u043f\u0430\u0442\u0447\u0435\u0439 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438. \u0418\u0445 \u0435\u0441\u0442\u044c \u0432 \u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <a href=\"https:\/\/pypi.org\/project\/human_math\/\">human_math<\/a>. \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c <em>cross<\/em>-\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u0438 \u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442 &#171;\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438&#187;:<\/p>\n<pre><code class=\"bash\">$ . .\/venv\/x86\/bin\/activate  (cross) $ cross-python3 -m pip install human_math Collecting human_math   Downloading human_math-0.1-py3-none-any.whl (13 kB) Installing collected packages: human-math Successfully installed human-math-0.1<\/code><\/pre>\n<p>\u041f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 <code>.\/venv\/x86\/cross\/lib\/python3.9\/site-packages\/<\/code> \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 <code>human_math\/<\/code>  \u0438 <code>human_math-0.1.dist-info\/<\/code>. \u041e\u0434\u0438\u043d \u0438\u0437 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u2014 \u0440\u0443\u043a\u0430\u043c\u0438 \u0437\u0430\u0442\u0430\u0449\u0438\u0442\u044c \u044d\u0442\u0438 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 \u043d\u0430 \u0442\u0430\u0440\u0433\u0435\u0442 \u0432 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e <code>\/usr\/lib\/python3.9\/site-packages<\/code>. \u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u043e, \u0438, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c \u0432 \u0430\u0440\u0445\u0438\u0432, \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u044b\u0439 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u0443:<\/p>\n<pre><code class=\"bash\">$ cd venv\/x86\/cross\/lib\/python3.9\/site-packages $ zip -r human_math-0.1-py3-none-any.whl human_math*<\/code><\/pre>\n<p>\u0418 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440, \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u043a\u0430\u0442\u0438\u0432 <em>pip<\/em> \u043f\u043e \u0435\u0433\u043e <a href=\"https:\/\/pip.pypa.io\/en\/stable\/installation\/#python\">\u0448\u0442\u0430\u0442\u043d\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438<\/a>. \u0412 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0441\u0447\u0435\u0442\u0435 \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442 <a href=\"https:\/\/pypi.org\/project\/human_math\/#description\">\u043f\u043e \u0432\u0430\u043d\u0438\u043b\u044c\u043d\u044b\u043c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f\u043c \u0430\u0432\u0442\u043e\u0440\u043e\u0432<\/a>:<\/p>\n<pre><code class=\"bash\">$ uname -a KPDA EAea7e68 20.09 2020\/09\/03-14:45:00-MSK x86pc x86 $ $ python -m ensurepip --upgrade ... Installing collected packages: setuptools, pip Successfully installed pip-20.2.3 setuptools-49.2.1 $ $ python3 -m pip install .\/human_math-0.1-py3-none-any.whl Processing .\/human_math-0.1-py3-none-any.whl Installing collected packages: human-math Successfully installed human-math-0.1 $ $ python3 Python 3.9.0 (default, Sep  3 2020, 14:45:00)  [GCC 4.8.3] Type \"help\", \"copyright\", \"credits\" or \"license\" for more information. >>> import human_math as hm >>> tree = hm.parse(\"2 - (-sin(3pi\/2)) - 3.0\") >>> tree ((2 - (-1 * sin(3 * (pi \/ 2)))) - 3) >>> tree.evaluate() -2<\/code><\/pre>\n<p>\u041f\u0440\u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0445 \u043b\u043e\u0433\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e <em>cross<\/em>-\u0441\u0431\u043e\u0440\u043a\u0438 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u0442\u0441\u044f. \u0414\u043b\u044f \u0440\u0430\u043d\u0434\u043e\u043c\u043d\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430 \u044d\u0442\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0437\u0430\u0432\u0435\u0434\u043e\u043c\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u0438 \u0441\u0442\u043e\u0438\u0442 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u044d\u043c\u043f\u0438\u0440\u0438\u0447\u0435\u0441\u043a\u0438 (\u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0430\u0439\u0434\u0435\u043d\u0430 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0438 \u043f\u0440\u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 <a href=\"https:\/\/pypi.org\">\u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u043f\u0430\u043a\u0435\u0442\u043e\u0432<\/a>, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0442\u043e\u0447\u043d\u043e). \u0424\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u043c <em>pip<\/em>, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u0441\u044e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u0443\u044e \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 <strong>\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u0440\u044f\u043c\u043e \u043d\u0430 \u0442\u0430\u0440\u0433\u0435\u0442\u0435<\/strong>. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u0438 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u2012 \u043e \u0447\u0435\u043c \u043d\u0430\u043c \u043d\u0430\u043c\u0435\u043a\u0430\u0435\u0442 \u043f\u043e\u0441\u0442\u0444\u0438\u043a\u0441 <code>-none-any<\/code> \u0432 \u0438\u043c\u0435\u043d\u0438 \u043f\u0430\u043a\u0435\u0442\u0430.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f. \u0412\u043e\u0437\u044c\u043c\u0435\u043c, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, <a href=\"https:\/\/pypi.org\/project\/polyleven\/\">\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u041b\u0435\u0432\u0435\u043d\u0448\u0442\u0435\u0439\u043d\u0430<\/a>. \u0417\u0430\u044f\u0432\u043b\u0435\u043d\u043e, \u0447\u0442\u043e \u043e\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0430 \u0421\u0438 \u0438 <em>Python<\/em>. \u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u0436\u0435, \u0440\u0430\u0437\u0432\u0435 \u0447\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432\u044b\u0437\u043e\u0432\u0443 <code>pip install<\/code> \u0432\u0435\u0440\u0431\u043e\u0437\u043d\u043e\u0441\u0442\u0438, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u0432\u0438\u0434\u0435\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430 \u0432\u044b\u0437\u043e\u0432\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430:<\/p>\n<details class=\"spoiler\">\n<summary>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043b\u043e\u0433\u0430 \u0441\u0431\u043e\u0440\u043a\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f polyleven<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">$ python-setup-crossenv.sh -tx86 Creating virtual Python environment in \/home\/a-n-d\/venv... Building cross environment for python3.9 (x86)... done! Patching \/home\/a-n-d\/venv\/x86\/cross\/bin\/python3.9... done! Use \". \/home\/a-n-d\/venv\/x86\/bin\/activate\" command to enable cross environment for x86 platform. $ $ . .\/venv\/x86\/bin\/activate (cross) $ (cross) $ cross-python3 -m pip install -v polyleven Using pip 20.2.3 from \/home\/a-n-d\/venv\/x86\/build\/lib\/python3.9\/site-packages\/pip (python 3.9) Non-user install because user site-packages disabled Created temporary directory: \/tmp\/pip-ephem-wheel-cache-fg_fuga_ Created temporary directory: \/tmp\/pip-req-tracker-f3sa3exq Initialized build tracking at \/tmp\/pip-req-tracker-f3sa3exq Created build tracker: \/tmp\/pip-req-tracker-f3sa3exq Entered build tracker: \/tmp\/pip-req-tracker-f3sa3exq Created temporary directory: \/tmp\/pip-install-kfgre1ru 1 location(s) to search for versions of polyleven: * https:\/\/pypi.org\/simple\/polyleven\/ Fetching project page and analyzing links: ... Given no hashes to check 6 links for project 'polyleven': discarding no candidates Using version 0.8 (newest of versions: 0.3, 0.4, 0.5, 0.6, 0.7, 0.8) Collecting polyleven   Created temporary directory: \/tmp\/pip-unpack-mg3leorj   Starting new HTTPS connection (1): files.pythonhosted.org:443   https:\/\/files.pythonhosted.org:443 \"GET ... polyleven-0.8.tar.gz HTTP\/1.1\" 200 6373   Downloading polyleven-0.8.tar.gz (6.4 kB)   Added polyleven from https:\/\/...     Running setup.py (path:\/tmp\/pip-install-kfgre1ru\/polyleven\/setup.py) egg_info for package polyleven     Created temporary directory: \/tmp\/pip-pip-egg-info-kpfd_tqt     Running command python setup.py egg_info     running egg_info     creating \/tmp\/pip-pip-egg-info-kpfd_tqt\/polyleven.egg-info     writing \/tmp\/pip-pip-egg-info-kpfd_tqt\/polyleven.egg-info\/PKG-INFO     writing dependency_links to<\/code><\/pre>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-404089","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/404089","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=404089"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/404089\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=404089"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=404089"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=404089"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}