SAP Connection failed: имя 'Connection' не определено, PYRFC в django

У меня возникла проблема с библиотекой pyrfc в моем проекте Django, работающем на сервере Pythonanywhere. В частности, я пытаюсь использовать класс Connection из pyrfc для создания соединения с системой SAP, но при попытке импортировать Connection в файл views.py я сталкиваюсь с ошибкой ImportError. Сообщение об ошибке гласит:

SAP Connection failed: name 'Connection' is not defined

Однако, когда я тестирую тот же код в оболочке Django, все работает нормально, и класс Connection импортируется правильно. Я проверил, что переменные окружения SAP_NWRFC_HOME и LD_LIBRARY_PATH установлены правильно, и библиотека libsapnwrfc.so успешно загружается.

Если я сделаю импорт типа

from pyrfc import Connection then it gives the error

2025-01-22 07:28:52,598: Error running WSGI application
2025-01-22 07:28:52,599: ImportError: cannot import name 'Connection' from 'pyrfc' (/home/moeez007/.local/lib/python3.10/site-packages/pyrfc/__init__.py)
2025-01-22 07:28:52,599:   File "/var/www/moeez007_pythonanywhere_com_wsgi.py", line 80, in <module>
2025-01-22 07:28:52,600:     from pyrfc import Connection

я также пытался установить переменные окружения в файле wsgi

import os
os.environ["SAP_NWRFC_HOME"] = "/home/moeez007/nwrfcsdk"
os.environ["LD_LIBRARY_PATH"] = "/home/moeez007/nwrfcsdk/lib"

но все равно то же самое, я также пытался запустить это как отдельный файл, но все равно то же самое

почему это работает в оболочке django shell и python, но не работает в представлении?

вот код для моего представления подключения

import pyrfc
from pyrfc import *
logger = logging.getLogger(__name__)


def sap_conn_test(request):
 if request.method == "GET":
    try:
        print(os.environ.get("SAP_NWRFC_HOME"))
        print(os.environ.get("LD_LIBRARY_PATH"))
        sap_conn = XPL_SAP_CON.objects.first()
        conn = Connection(
            user=sap_conn.user_name,
            passwd=sap_conn.password,
            ashost=sap_conn.server_address,
            sysnr=sap_conn.system_number,
            client=sap_conn.client_number,
        )
        response = {
            "message": "SAP Connection successful!",
            "status": "success"
        }
    except Exception as e:
        response = {
            "message": f"SAP Connection failed: {e}",
            "status": "error"
        }
    return JsonResponse(response)
return JsonResponse({"message": "Invalid request method.", "status": "error"})
Вернуться на верх