import fdb
def main():
con = fdb.connect(dsn='C:\AKINSOFT\Wolvox8\Database_FB\SIRKET.FDB', user='sysdba', password='masterkey')
if __name__ == '__main__':
main()
Я написал простой код для подключения базы данных Firebird к Python и fdb. Когда я запускаю это, я получаю ошибку 193 win
Traceback (most recent call last):
File "C:\Users\grand\PycharmProjects\DatabaseTest\main.py", line 9, in <module>
main()
File "C:\Users\grand\PycharmProjects\DatabaseTest\main.py", line 5, in main
con = fdb.connect(dsn='C:\AKINSOFT\Wolvox8\Database_FB\SIRKET.FDB', user='sysdba', password='masterkey')
File "C:\Users\grand\PycharmProjects\DatabaseTest\venv\lib\site-packages\fdb\fbcore.py", line 803, in connect
load_api(fb_library_name)
File "C:\Users\grand\PycharmProjects\DatabaseTest\venv\lib\site-packages\fdb\fbcore.py", line 231, in load_api
setattr(sys.modules[__name__], 'api', ibase.fbclient_API(fb_library_name))
File "C:\Users\grand\PycharmProjects\DatabaseTest\venv\lib\site-packages\fdb\ibase.py", line 1396, in __init__
fb_library = WinDLL(fb_library_name)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2288.0_x64__qbz5n2kfra8p0\lib\ctypes\__init__.py", line 374, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 193] %1 geçerli bir Win32 uygulaması değil
Английская ошибка: «[WinError 193] %1 не является допустимым приложением Win32», и это означает, что вы пытаетесь загрузить 32-разрядную DLL в 64-разрядном процессе (или 64-разрядную DLL в 32-разрядном процессе). битовый процесс). Это означает, что у вас нет действительной fbclient.dll в PATH, которая соответствует разрядности вашего процесса Python, но имеет неправильную разрядность.
Итак, выясните, используете ли вы 32-битный или 64-битный Python (вероятно, 64-битный в наши дни), и используйте установщик Firebird соответствующей разрядности для установки клиентской библиотеки.
Если у вас нет или вы не хотите иметь fbclient.dll в PATH, вы также можете использовать fdb.load_api(..) или свойство подключения fb_library_name, чтобы указать путь к fbclient.dll из соответствующую разрядность.
Кроме того, библиотека fdb была заменена библиотекой firebird-driver.
спасибо, 32-битная версия была установлена, я просто переустановил 64-битную версию, и она работает