Есть приложение Django на VDS, которое прекрасно работает, но при подключении .DLL возникает ошибка 'clr' has no attribute 'AddReference'
Не могу устранить ошибку: module 'clr' has no attribute 'AddReference'
VDS Ubuntu22+Apache2 +Python3.10.9+ Django 4, 1, 5 +ip и доменное имя, все работает нормально, но мне нужно подключить dll (.net7.0)(dotnet build --runtime ubuntu.22.04-x64 --self-contained)- если вы подключаетесь к VDS через клиент Openssh, то .dll подключится в среде python3, которая там есть, но при загрузке страницы возникает ошибка module 'clr' has no attribute 'AddReference'
, единственное отличие, которое я заметил, заключается в том, что сайт выдает Python.version=3.10.6 (main, Nov 14 2022, 16:10:14) [ GCC 11.3.0], (import sys
sys.version
) , когда я нахожусь в клиенте Openssh, он пишет '3.10.9 (main, Jan 24 2023, 10:16:41) [GCC 11.3.0]', может быть, это какая-то причина?
вот что я имею за Traceback загрузки сайта :
Traceback (most recent call last):
File "/home/djangoexample4/env/lib/python3.10/site-packages/django/core/handlers/exception.py", line 55, in inner
response = get_response(request)
File "/home/djangoexample4/env/lib/python3.10/site-packages/django/core/handlers/base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/djangoexample4/mainapp/views.py", line 135, in index
clr.AddReference('/home/djangoexample4/btclinux2/MyLibraryName/bin/Debug/net7.0/ubuntu.22.04-x64/MyLibraryName.dll')
Exception Type: AttributeError at /
Exception Value: module 'clr' has no attribute 'AddReference'
если через openSSH client подключатся к VDS, то ни какой ошибки уже почемуто нет:
# monop -r /home/djangoexample4/btclinux2/MyLibraryName/bin/Debug/net7.0/ubuntu.22.04-x64/MyLibraryName.dll
Assembly Information:
MyLibraryName
Version=1.0.0.0
Culture=neutral
PublicKeyToken=null
MyLibraryName.Class1
Total: 1 types.
исходный си шарп
namespace MyLibraryName{
public class Class1
{
public int method1()
{
return 777;
}
}
}
вот это при обращении через консоль на этом VDS:
# python3
>>>import clr
>>>clr.AddReference('/home/djangoexample4/btclinux2/MyLibraryName/bin/Debug/net7.0/ubuntu.22.04-x64/MyLibraryName.dll')
>>>from MyLibraryName import Class1
>>>variable = Class1().method1()
>>>print (variable)
777
вот это тоже делал:
pip uninstall clr
pip uninstall pythonnet
pip install pythonnet
добавить WSGIApplicationGroup %{GLOBAL}
в /etc/apache2/sites-enabled/youdomain.conf
<VirtualHost *:80>
. . .
WSGIApplicationGroup %{GLOBAL}
</VirtualHost>
И это все заработало!