Библиотека загрузки Python с другой платформы (Windows, Linux или OS X) - PullRequest
0 голосов
/ 04 мая 2018

Я новичок в Python из языка Си. Теперь я планирую реализовать кроссплатформенный проект с библиотекой Python + C (ctypes), работающей в Windows, Linux и OS X, и у меня есть файлы win32.dll, win64.dll, mac_osx.so linux.so.

Как загрузить их одним файлом Python (.py)?

Моя идея состоит в том, чтобы использовать Python OS или модуль платформы для проверки среды, например так (извините, это не настоящая программа Python):

  if Windows and X86 then load win32.dll
  else if Windows and X64 then load win64.dll
  else if OSX then load osx.so
  else if Linux then load linux.so

Есть ли простой и понятный способ сделать эту работу?

1 Ответ

0 голосов
/ 08 мая 2018

вы можете использовать модуль ctypes.cdll для загрузки DLL / SO / DYLIB и модуль platform для определения системы, на которой вы работаете.

минимальный рабочий пример будет выглядеть так:

import platform
from ctypes import *

# get the right filename
if platform.uname()[0] == "Windows":
    name = "win.dll"
if platform.uname()[0] == "Linux":
    name = "linux.so"
else:
    name = "osx.dylib"

# load the library
lib = cdll.LoadLibrary(name)

обратите внимание, что вам понадобится 64-битный интерпретатор python для загрузки 64-битных библиотек и 32-битный интерпретатор python для загрузки 32-битных библиотек

...