Обновление до Python 3.8: различия между версиями
ENetrebin (обсуждение | вклад) (Новая страница: «== Обновите пользовательские расширения Ключ-АСТРОМ с Python 3.6 до Python 3.8. == Начиная с Единого...») |
ENetrebin (обсуждение | вклад) |
||
Строка 8: | Строка 8: | ||
** Иногда виртуальная машина Python дает сбой. | ** Иногда виртуальная машина Python дает сбой. | ||
* '''Влияние''' . Эта проблема затрагивает только те расширения, которые используют собственные библиотеки, вызываемые из кода Python, распространяемого вместе с расширением. | * '''Влияние''' . Эта проблема затрагивает только те расширения, которые используют собственные библиотеки, вызываемые из кода Python, распространяемого вместе с расширением. | ||
== Рекомендуемое решение == | |||
В случае каких-либо проблем с пользовательскими расширениями после обновления до ЕдиногоАгента версии 1.231+ мы рекомендуем пересобрать пакет расширений с использованием Python 3.8 вместе с новейшими модулями и повторно развернуть его на всех хостах. | |||
Подробную информацию о создании, загрузке и развертывании расширений см. в разделе Расширения . | |||
Обратите внимание, что для создания расширения необходимо использовать Python 3.8, то есть его <code>plugin_sdk</code>необходимо установить в среде Python 3.8. Мы рекомендуем использовать виртуальную среду Python, подготовленную Python 3.8. | |||
* Расширения, работающие на компьютерах с Windows, необходимо пересобирать в Windows; Расширения Linux необходимо пересобрать в Linux. | |||
* В настоящее время поддерживаются только 64-битные платформы. | |||
Обновите расширение <code>version</code>и <code>install_requires</code>свойства в <code>plugin.json</code>файле. | |||
Модули зависимостей, определенные в <code>install_requires</code>свойстве, должны быть последней доступной версией или версией, поддерживаемой Python 3.8. | |||
== Пример миграции == | |||
Ниже приведен отрывок из <code>plugin.json</code>файла расширения, специфичного для Windows. | |||
<code>{</code> | |||
<code> "name": "custom.python.mssql",</code> | |||
<code> "version": "1.0",</code> | |||
<code> "type": "python",</code> | |||
<code> "requiredAgentVersion": "0.000.0",</code> | |||
<code> "entity": "PROCESS_GROUP_INSTANCE",</code> | |||
<code> "technologies": ["MSSQL"],</code> | |||
<code> "source": {</code> | |||
<code> "package": "custom_mssql_plugin",</code> | |||
<code> "className": "CustomMsSqlPlugin",</code> | |||
<code> "install_requires": ["pymssql==2.1.4"],</code> | |||
<code> "activation": "Singleton"</code> | |||
<code> },</code> | |||
* Это версия 1.0; для этого не требуется какая-либо конкретная версия ЕдиногоАгента. | |||
* Для расширения требуется модуль pymssql версии 2.1.4. | |||
* Пакет расширения содержит бинарные модули, специфичные для конкретной платформы: | |||
** <code>_mssql.cp36-win_amd64.pyd</code> | |||
** <code>pymssql.cp36-win_amd64.pyd</code> Эти модули поддерживают Python версии 3.7 и более ранних версий, но не Python 3.8 (см. [https://pypi.org/project/pymssql/2.1.4/ pymssql 2.1.4)].). | |||
=== Сообщение об ошибке === | |||
Расширение перестанет работать после обновления до ЕдиногоАгента версии 1.231+, и в логе PluginAgent появится следующая ошибка. | |||
<code>2021-10-26 11:03:32.032 UTC [00000c5c] info [native] 3164(MainThread) - [report_status] status changed for engine ('custom.python.mssql', 16080871464060409180) PluginFullStatus(pluginName=custom.python.mssql, pluginVersion=1.0, state=ERROR_UNKNOWN, description=No module named 'pymssql', monitoredEntityId=0xdf2abb657e09555c, stacktrace=Traceback (most recent call last):</code> | |||
<code>File "C:\ProgramData/astromkey/oneagent/agent/runtime/engine_unpacked\ruxit\plugin_state_machine.py", line 336, in _execute_next_task</code> | |||
<code>self._query_plugin()</code> | |||
<code>File "C:\ProgramData/astromkey/oneagent/agent/runtime/engine_unpacked\ruxit\plugin_state_machine.py", line 663, in _query_plugin</code> | |||
<code>self._plugin_run_data = self._create_plugin_run_data()</code> | |||
<code>File "C:\ProgramData/astromkey/oneagent/agent/runtime/engine_unpacked\ruxit\plugin_state_machine.py", line 636, in _create_plugin_run_data</code> | |||
<code>plugin_module = importlib.import_module(self.metadata["source"]["package"])</code> | |||
<code>File "C:\Program Files/astromkey/oneagent/agent/plugin/python3.8\importlib\__init__.py", line 127, in import_module</code> | |||
<code>return _bootstrap._gcd_import(name[level:], package, level)</code> | |||
<code>File "<frozen importlib._bootstrap>", line 1014, in _gcd_import</code> | |||
<code>File "<frozen importlib._bootstrap>", line 991, in _find_and_load</code> | |||
<code>File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked</code> | |||
<code>File "<frozen importlib._bootstrap>", line 671, in _load_unlocked</code> | |||
<code>File "<frozen importlib._bootstrap_external>", line 843, in exec_module</code> | |||
<code>File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed</code> | |||
<code>File "C:\Program Files/astromkey/oneagent/plugin_deployment/custom.python.mssql\custom_mssql_plugin.py", line 14, in <module></code> | |||
<code>import pymssql</code> | |||
<code>ModuleNotFoundError: No module named 'pymssql'</code> | |||
<code>)</code> | |||
Расширение должно быть обновлено и пересобрано с использованием Python 3.8 и новейшего модуля pymssql, версия которого на данный момент равна 1. 2.2.2. Новую версию пакета расширения необходимо развернуть на всех хостах, на которых он работает. |
Версия 07:47, 28 декабря 2023
Обновите пользовательские расширения Ключ-АСТРОМ с Python 3.6 до Python 3.8.
Начиная с ЕдиногоАгента и АктивногоШлюза версии 1.231, мы обновляем платформу расширений (также называемую платформой плагинов) с Python 3.6 до Python 3.8.
- Последствия : некоторые расширения Ключ-АСТРОМ, работающие в вашей среде, могут перестать работать и потребовать повторного развертывания новой версии, подготовленной для Python 3.8.
- Симптомы :
- Никакие данные не предоставляются для затронутых показателей на информационных панелях, оповещениях и страницах пользовательских устройств, заполненных затронутыми метриками расширения.
- В логах расширений отображаются ошибки.
ModuleNotFoundError
Чаще всего в логе PluginAgent это проявляется как Python . - Иногда виртуальная машина Python дает сбой.
- Влияние . Эта проблема затрагивает только те расширения, которые используют собственные библиотеки, вызываемые из кода Python, распространяемого вместе с расширением.
Рекомендуемое решение
В случае каких-либо проблем с пользовательскими расширениями после обновления до ЕдиногоАгента версии 1.231+ мы рекомендуем пересобрать пакет расширений с использованием Python 3.8 вместе с новейшими модулями и повторно развернуть его на всех хостах.
Подробную информацию о создании, загрузке и развертывании расширений см. в разделе Расширения .
Обратите внимание, что для создания расширения необходимо использовать Python 3.8, то есть его plugin_sdk
необходимо установить в среде Python 3.8. Мы рекомендуем использовать виртуальную среду Python, подготовленную Python 3.8.
- Расширения, работающие на компьютерах с Windows, необходимо пересобирать в Windows; Расширения Linux необходимо пересобрать в Linux.
- В настоящее время поддерживаются только 64-битные платформы.
Обновите расширение version
и install_requires
свойства в plugin.json
файле.
Модули зависимостей, определенные в install_requires
свойстве, должны быть последней доступной версией или версией, поддерживаемой Python 3.8.
Пример миграции
Ниже приведен отрывок из plugin.json
файла расширения, специфичного для Windows.
{
"name": "custom.python.mssql",
"version": "1.0",
"type": "python",
"requiredAgentVersion": "0.000.0",
"entity": "PROCESS_GROUP_INSTANCE",
"technologies": ["MSSQL"],
"source": {
"package": "custom_mssql_plugin",
"className": "CustomMsSqlPlugin",
"install_requires": ["pymssql==2.1.4"],
"activation": "Singleton"
},
- Это версия 1.0; для этого не требуется какая-либо конкретная версия ЕдиногоАгента.
- Для расширения требуется модуль pymssql версии 2.1.4.
- Пакет расширения содержит бинарные модули, специфичные для конкретной платформы:
_mssql.cp36-win_amd64.pyd
pymssql.cp36-win_amd64.pyd
Эти модули поддерживают Python версии 3.7 и более ранних версий, но не Python 3.8 (см. pymssql 2.1.4).).
Сообщение об ошибке
Расширение перестанет работать после обновления до ЕдиногоАгента версии 1.231+, и в логе PluginAgent появится следующая ошибка.
2021-10-26 11:03:32.032 UTC [00000c5c] info [native] 3164(MainThread) - [report_status] status changed for engine ('custom.python.mssql', 16080871464060409180) PluginFullStatus(pluginName=custom.python.mssql, pluginVersion=1.0, state=ERROR_UNKNOWN, description=No module named 'pymssql', monitoredEntityId=0xdf2abb657e09555c, stacktrace=Traceback (most recent call last):
File "C:\ProgramData/astromkey/oneagent/agent/runtime/engine_unpacked\ruxit\plugin_state_machine.py", line 336, in _execute_next_task
self._query_plugin()
File "C:\ProgramData/astromkey/oneagent/agent/runtime/engine_unpacked\ruxit\plugin_state_machine.py", line 663, in _query_plugin
self._plugin_run_data = self._create_plugin_run_data()
File "C:\ProgramData/astromkey/oneagent/agent/runtime/engine_unpacked\ruxit\plugin_state_machine.py", line 636, in _create_plugin_run_data
plugin_module = importlib.import_module(self.metadata["source"]["package"])
File "C:\Program Files/astromkey/oneagent/agent/plugin/python3.8\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 843, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "C:\Program Files/astromkey/oneagent/plugin_deployment/custom.python.mssql\custom_mssql_plugin.py", line 14, in <module>
import pymssql
ModuleNotFoundError: No module named 'pymssql'
)
Расширение должно быть обновлено и пересобрано с использованием Python 3.8 и новейшего модуля pymssql, версия которого на данный момент равна 1. 2.2.2. Новую версию пакета расширения необходимо развернуть на всех хостах, на которых он работает.