Unsolved qt.network.ssl: No functional TLS backend was found ?
-
I don't have an exe file, just a python script calling a function from a dll. The entire openssl lib is in the directory with the dll. In the dll itself, the only code from qt:
int argc = 1; const char* p1{ "C" }; const char** argv = &p1; QGuiApplication app(argc, (char**) argv);
QCoreApplication::addLibraryPath("C:\Program Files\OpenSSL-Win64\lib");
QQmlApplicationEngine engine;
const QUrl url(QStringLiteral("C:\C++\for_quik_lua535\x64\Debug\main_window.qml"));
QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, &app,
[url](QObject* obj, const QUrl& objUrl) { if (!obj && url == objUrl) QCoreApplication::exit(-1);},
Qt::QueuedConnection);
engine.load(url);
return PyLong_FromLong(app.exec()); -
Hi,
That's not the purpose of addLibraryPath. As @raven-worx already suggested the .dlls should be findable in the PATH environment variable.
How are you starting your script ?
How did you install Python ?
Can you explain what your script does ?
-
addLibraryPath - just in case. env. path is set.
py script, starting from VS 2019, python 3.9 by standard installer:from importlib.machinery import ExtensionFileLoader
dll = ExtensionFileLoader('py2quik_module', r'C:\C++\for_quik_lua535\x64\Debug\for_quik_lua535.dll').load_module()if name == 'main':
py_obj = dll.py2dll_obj(None) -
@BVladimir said in qt.network.ssl: No functional TLS backend was found ?:
py2quik
Would you mind explaining what exactly you are trying to load ?
-
My dll "for_quik_lua535.dll" is a Python/C extension named "py2quik_module" in python
-
Out of curiosity, why not use PySide or PyQt since you are already working with Python ?
-
I think it will work faster in c++ - a lot of online data is planned. Python for the general scenario.
-
What kind of data do you intend to process ?
-
Data from stock exchange terminal
-
I tried to build an exe file:
#include <QGuiApplication>
#include <QQmlApplicationEngine>int main(int argc, char* argv[]) {
int argc2 = 1;
const char* p1{ "C" };
const char** argv2 = &p1;QGuiApplication app(argc2, (char**)argv2); QQmlApplicationEngine engine; const QUrl url(QStringLiteral("qrc:tmpQML/tmpQML.qml")); QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, &app, [url](QObject* obj, const QUrl& objUrl) { if (!obj && url == objUrl) QCoreApplication::exit(-1); }, Qt::QueuedConnection); engine.load(url); return app.exec();
}
Same QML:
import QtQuick 2.12
import QtQuick.Controls 2.12ApplicationWindow {
title: "Qt Quick Controls Gallery" visible: true width: 640 height: 480
}
When running from VS 2019, it works fine. And does not try to search any of:
QFactoryLoader::QFactoryLoader() checking directory path "C:/Qt/6.2.1/msvc2019_64/plugins/platforms/networkaccess" ...
or
QFactoryLoader::QFactoryLoader() checking directory path "C:/Qt/6.2.1/msvc2019_64/plugins/platforms/tls" ...
It's only with dll problem...
-
What are going to use to process your data ?
-
The main idea is Python calls dll's that receive data and display using qt, General work with data where speed is not needed in Python
-
Well, I must say I fail to understand your architecture here.
What is so speed critical in your app that you need to have your UI in C++ while doing some processing in Python while the rest is done in C++ again.
-
Data from stock exchange terminal - through с++ & qt, analysis in Python.
-
Why not load the data directly in Python using something like numpy ?
-
It is assumed that there can be over 10,000 changing values on the screen once per second. I would like to have fewer lags.
-
If you do all the heavy lifting in Python you should benchmark the GUI as well.
-
Maybe, but if it is possible to execute all gui in native c++, wouldn't it be preferable?
-
As I wrote: benchmark.
Adding a layer of complexity might not be of any benefit in terms of performance, maintainability and architecture.
-
In any case, I already have a dll for getting data, and I thought it was the easiest way to use it for the gui... But with python, I'll have to do more research...