Я новичок в Ubuntu и Linux в целом. Я установил Ubuntu 18 вместе с кодом, где есть скрипт на python, который нужно запустить. Мой компьютер подключен к чековому принтеру через USB. При запуске моего кода Python принтер должен напечатать некоторый текст, однако я получаю сообщение об ошибке, как показано ниже.
Я заметил, что если я запускаю sudo python3 myscript.py, я могу отправить его на принтер. Я запускаю код Python в среде Visual Studio. Я читал где-то еще, что эта проблема может быть связана с настройкой правил для получения доступа к моему USB-принтеру, но я не знаю, как это сделать.
Ниже приведен пример скрипта Python, который я запускаю из кода нажатием клавиши F5
from escpos.printer import Usb
printer = Usb(1208, 3605)
printer.text('hello world')
printer.cut()
При запуске этого кода я получаю ошибку ниже
cd /home/hiddendimsum/Documents/Python/POS ; env PYTHONIOENCODING=UTF-8 PYTHONUNBUFFERED=1 /home/hiddendimsum/Documents/Python/POS/env/bin/python /home/hiddendimsum/.vscode/extensions/ms-python.python-2019.9.34911/pythonFiles/ptvsd_launcher.py --default --client --host localhost --port 46101 /home/hiddendimsum/Documents/Python/POS/test4.py
Traceback (most recent call last):
File "/home/hiddendimsum/.vscode/extensions/ms-python.python-2019.9.34911/pythonFiles/ptvsd_launcher.py", line 43, in <module>
main(ptvsdArgs)
File "/home/hiddendimsum/.vscode/extensions/ms-python.python-2019.9.34911/pythonFiles/lib/python/ptvsd/__main__.py", line 432, in main
run()
File "/home/hiddendimsum/.vscode/extensions/ms-python.python-2019.9.34911/pythonFiles/lib/python/ptvsd/__main__.py", line 316, in run_file
runpy.run_path(target, run_name='__main__')
File "/usr/lib/python3.6/runpy.py", line 263, in run_path
pkg_name=pkg_name, script_name=fname)
File "/usr/lib/python3.6/runpy.py", line 96, in _run_module_code
mod_name, mod_spec, pkg_name, script_name)
File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/hiddendimsum/Documents/Python/POS/test4.py", line 2, in <module>
printer = Usb(1208, 3605)
File "/home/hiddendimsum/Documents/Python/POS/env/lib/python3.6/site-packages/escpos/printer.py", line 51, in __init__
self.open()
File "/home/hiddendimsum/Documents/Python/POS/env/lib/python3.6/site-packages/escpos/printer.py", line 62, in open
check_driver = self.device.is_kernel_driver_active(0)
File "/home/hiddendimsum/Documents/Python/POS/env/lib/python3.6/site-packages/usb/core.py", line 1061, in is_kernel_driver_active
self._ctx.managed_open()
File "/home/hiddendimsum/Documents/Python/POS/env/lib/python3.6/site-packages/usb/core.py", line 102, in wrapper
return f(self, *args, **kwargs)
File "/home/hiddendimsum/Documents/Python/POS/env/lib/python3.6/site-packages/usb/core.py", line 120, in managed_open
self.handle = self.backend.open_device(self.dev)
File "/home/hiddendimsum/Documents/Python/POS/env/lib/python3.6/site-packages/usb/backend/libusb1.py", line 786, in open_device
return _DeviceHandle(dev)
File "/home/hiddendimsum/Documents/Python/POS/env/lib/python3.6/site-packages/usb/backend/libusb1.py", line 643, in __init__
_check(_lib.libusb_open(self.devid, byref(self.handle)))
File "/home/hiddendimsum/Documents/Python/POS/env/lib/python3.6/site-packages/usb/backend/libusb1.py", line 595, in _check
raise USBError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBError: [Errno 13] Access denied (insufficient permissions)