a month ago
Hi
I want to execute the Python samples with Python 3.11.0 or 3.11.8.
Into %SYBASE%\%SYBASE_OCS%\sample\python I copied the SYBASE.bat file from %SYBASE% and add
variables for DSQUERY, PYTHONHOME, PATH, and PYTHONPATH:
REM
REM SAP Product Environment variables
REM
set INCLUDE=C:\SAP\OCS-16_0\include;%INCLUDE%
set LIB=C:\SAP\OCS-16_0\lib;%LIB%
REM
REM Replace dll, lib3p, and lib3p64 with devdll, devlib3p, and devlib3p64 when debugging
REM
set PATH=C:\SAP\OCS-16_0\bin;C:\SAP\OCS-16_0\dll;C:\SAP\OCS-16_0\lib3p64;C:\SAP\OCS-16_0\lib3p;%PATH%
set PATH=C:\SAP\DataAccess\ODBC\dll;%PATH%
set PATH=C:\SAP\DataAccess64\ODBC\dll;%PATH%
set LIB=C:\SAP\DataAccess\ADONET\dll;%LIB%
set PATH=C:\SAP\DataAccess\ADONET\dll;%PATH%
set PATH=C:\SAP\DataAccess64\ADONET\dll;%PATH%
set LIB=C:\SAP\DataAccess64\ADONET\dll;%LIB%
set PATH=C:\SAP\COCKPIT-4\bin;%PATH%
set PATH=C:\SAP\ASE-16_0\bin;C:\SAP\ASE-16_0\dll;C:\SAP\WLA\bin;;%PATH%
set PATH=C:\SAP\ASE-16_0\jobscheduler\bin;%PATH%
set SAP_JRE8_32=C:\SAP\Shared\SAPJRE-8_1_096_32BIT
set SAP_JRE8=C:\SAP\Shared\SAPJRE-8_1_096_64BIT
set SAP_JRE8_64=C:\SAP\Shared\SAPJRE-8_1_096_64BIT
set SYBASE_OCS=OCS-16_0
set COCKPIT_JAVA_HOME=C:\SAP\Shared\SAPJRE-8_1_096_64BIT
set SYBASE=C:\SAP
set SYBASE_ASE=ASE-16_0
set SYBROOT=C:\SAP
set SYBASE_JRE_RTDS=C:\SAP\Shared\SAPJRE-8_1_096_64BIT
set SYBASE_WS=WS-16_0
set DSQUERY=HP450RK
set PYTHONHOME=C:\Program Files\Python311
set PATH=%PYTHONHOME%;%PATH%
set PYTHONPATH=%SYBASE%\%SYBASE_OCS%\python\python311_64\dll
I navigate to the %SYBASE%/%SYBASE_OCS%/sample/python directory and execute SYBASE.bat
for setting the environment. Executing results in the following error:
c:\SAP\OCS-16_0\sample\python>python %SYBASE%\%SYBASE_OCS%\sample\python\test.py
Traceback (most recent call last):
File "C:\SAP\OCS-16_0\sample\python\test.py", line 53, in <module>
import sybpydb
ImportError: DLL load failed while importing sybpydb: Das angegebene Modul wurde nicht gefunden.
The translation of the ImportError is "The specified module was not found."
I tried Python 3.11.0 and 3.11.8 installations for me only and for all users of the system. The errormessage
is allways the same.
What are I'm doing wrong?
Many thanks
Robert
Request clarification before answering.
I was able to solve the problem: Starting with Python 3.8 the samples must be modified! See
https://www.jamesbowley.co.uk/nbs/ImportError_dll_load_failed_while_importing_cv2.html
From:
import sybpydb
into
import os
os.add_dll_directory(r'c:\SAP\OCS-16_0\dll')
import sybpydb
Where 'c:\SAP\OCS-16_0\dll' is the path for libsybdbcapi64.dll which will be called in sybpydb.pyd.
Hope that helps.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I have seen the document and hopefully implement all points. I use ASE 16.0.4 PL06
and Python 3.11 instead of 3.1 (given in the document). As ASE 16.0.4 PL06 has an directory
"python311_64" I hope that Python 3.11.x is supported.
Robert
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
This actually isn't a typo, but documentation that hasn't been updated for newer versions of the module.
I've created a CR or change request for these Python pages. I've found 3 pages so far.
The python modules are built with specific python versions.
Windows
%SYBASE%\%SYBASE_OCS%\python\pythonXX_64
All other platforms
$SYBASE/$SYBASE_OCS/python/pythonXX_64r
XX will be the python version that the module is built for in that directory.
So python 3.11 would use python311_64r
Hope that helps,
Ryan
User | Count |
---|---|
77 | |
30 | |
10 | |
8 | |
8 | |
7 | |
7 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.