Запуск файлов pyd со встроенным Python в других системахPython

Программы на Python
Ответить
Anonymous
 Запуск файлов pyd со встроенным Python в других системах

Сообщение Anonymous »

Итак, я пишу плагин Python для средства запуска потока, который имеет зависимость, использующую расширения C, скомпилированные в файлы pyd (извините, если я сказал неправильно, я не очень уверен в том, как это назвать/как это описать). ). Проблема, с которой я сталкиваюсь, заключается в том, что средство запуска потока требует, чтобы плагины были упакованы с их зависимостями, что приводит к ошибкам в том, что файл pyd для зависимости не найден, поскольку его нет для конкретной ОС и архитектуры. (Для справки, я говорю о зависимости msgspec).
Зависимости обычно работают с плагинами Python для потока: они упаковываются в папку lib. который включает в себя зависимости, при этом основной файл плагина имеет что-то вроде следующего вверху:

Код: Выделить всё

import os
import sys

parent_folder_path = os.path.abspath(os.path.dirname(__file__))
sys.path.append(parent_folder_path)
sys.path.append(os.path.join(parent_folder_path, "lib"))
чтобы добавить папку lib в путь.
Еще кое-что о средстве запуска Flow, о котором мне, вероятно, следует упомянуть:
  • Только для Windows
  • Вы можете выбрать используемую установку Python, но по умолчанию устанавливается и используется встроенная версия 3.11.
Я попробовал пару вещей, например проверяет, не найден ли файл pyd при запуске, и если да, принудительно переустанавливает msgspec, однако по умолчанию поток загружает встроенную версию Python 3.11 для плагинов Python, в которой нет pip.
После этого я попытался установить его напрямую с помощью файла setup.py, и ближе всего я выполнил следующую команду:

Код: Выделить всё

 -c "__import__('sys').path.append(str(__import__('pathlib').Path(__import__('os').getcwd()).parent));__import__('sys').path.append(str(__import__('pathlib').Path(__import__('os').getcwd())));import runpy; runpy.run_module('setup')" install
Однако при этом msgspec устанавливается глобально во встроенной установке Python, что может привести к конфликтам версий.
Я также попробовал установить все файлы pyd для все поддерживаемые архитектуры (до сих пор не уверен, возможно ли это вообще), однако мне удалось создать проблему только на их странице github

Подробнее здесь: https://stackoverflow.com/questions/793 ... er-systems
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»