Ошибка загрузки файлаbindy.dll при использовании libximc для управления поворотным столомPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка загрузки файлаbindy.dll при использовании libximc для управления поворотным столом

Сообщение Anonymous »

Я пытаюсь управлять физическим поворотным столом с помощью собственного контроллера, который для связи использует специальную библиотеку libximc. Я установил библиотеку через pip согласно инструкциям производителя. Более подробную информацию об использовании устройства и библиотеки можно найти здесь (https://colab.research.google.com/drive ... o=8a959c87).
После запуска предоставленный тестовый код, я столкнулся со следующей ошибкой:

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

Traceback (most recent call last):
File "c:\Users\aidas\Desktop\DAQMIK\VirtualRotaryTable\VirtualMotorControl.py", line 4, in 
import libximc.highlevel as ximc
File "C:\Users\aidas\AppData\Local\Programs\Python\Python312\Lib\site-packages\libximc\__init__.py", line 1, in 
from libximc.lowlevel import *  # noqa: It's very difficult to trace which objects from old lowlevel binding are needed
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\aidas\AppData\Local\Programs\Python\Python312\Lib\site-packages\libximc\lowlevel\__init__.py", line 1, in 
from libximc.lowlevel._lowlevel import *  # noqa: It's very difficult to trace which objects from old lowlevel binding are needed
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\aidas\AppData\Local\Programs\Python\Python312\Lib\site-packages\libximc\lowlevel\_lowlevel.py", line 86, in 
lib = ximc_shared_lib()
^^^^^^^^^^^^^^^^^
File "C:\Users\aidas\AppData\Local\Programs\Python\Python312\Lib\site-packages\libximc\lowlevel\_lowlevel.py", line 84, in ximc_shared_lib
return _load_lib()
^^^^^^^^^^^
File "C:\Users\aidas\AppData\Local\Programs\Python\Python312\Lib\site-packages\libximc\lowlevel\_lowlevel.py", line 79, in _load_lib
raise RuntimeError(error_msg)
RuntimeError: Unable to load library. Paths tried:
Error loading file C:\Users\aidas\AppData\Local\Programs\Python\Python312\Lib\site-packages\libximc\lowlevel\..\library-files\win64\bindy.dll - Could not find module 'C:\Users\aidas\AppData\Local\Programs\Python\Python312\Lib\site-packages\libximc\lowlevel\..\library-files\win64\bindy.dll' (or one of its dependencies). Try using the full path with constructor syntax.
Error loading file ..\..\..\..\..\win64\bindy.dll - Could not find module '..\..\..\..\..\win64\bindy.dll' (or one of its dependencies). Try using the full path with constructor syntax.
Мой код (предоставлен производителем):

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

import pathlib
import os
import time
import libximc.highlevel as ximc

virtual_device_filename = "virtual_motor_controller_1.bin"
virtual_device_file_path = os.path.join(
pathlib.Path().cwd(),
virtual_device_filename
)
# Devices search
devices = ximc.enumerate_devices(
ximc.EnumerateFlags.ENUMERATE_NETWORK |
ximc.EnumerateFlags.ENUMERATE_PROBE
)

if len(devices) == 0:
print("The real devices were not found. A virtual device will be used.")
else:
# Print real devices list
print("Found {} real device(s):".format(len(devices)))
for device in devices:
print("  {}".format(device))
В чем может быть причина проблемы и как ее устранить?
Идентичная настройка работает на рабочем столе:
Я следую те же самые шаги на моем рабочем столе, где код работает без каких-либо проблем.
Непосредственное указание на путь DLL:
Я попытался изменить переменную среды PATH в скрипте, чтобы она указывала непосредственно к полному пути к файлуbindy.dll:

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

import ctypes
import os
import libximc.highlevel as ximc

dll_path = r"C:\Users\aidas\Downloads\libximc-20241009T030645Z-001.zip\libximc\library-files\win64\bindy.dll"
os.environ['PATH'] = dll_path + ";" + os.environ['PATH']

virtual_device_filename = "virtual_motor_controller_1.bin"
virtual_device_file_path = os.path.join(pathlib.Path().cwd(), virtual_device_filename)

devices = ximc.enumerate_devices(ximc.EnumerateFlags.ENUMERATE_NETWORK | ximc.EnumerateFlags.ENUMERATE_PROBE)

if len(devices) == 0:
print("The real devices were not found. A virtual device will be used.")
else:
print("Found {} real device(s):".format(len(devices)))
for device in devices:
print("  {}".format(device))

Информация о среде:
ОС: Windows 10 (64-разрядная версия)
Версия Python: 3.9 (64-разрядная версия)
Версия библиотеки: libximc 2.13. 3 (устанавливается через pip)
Ноутбук: Asus Aspire E15 (Intel Core i5-8215U, 8 ГБ ОЗУ)
Настольный компьютер: ПК, изготовленный по индивидуальному заказу (Intel Core i5, 32 ГБ ОЗУ)

Подробнее здесь: https://stackoverflow.com/questions/790 ... le-control
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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