PostgreSQL driver does not load with PyQt5 [duplicate] - postgresql

I have some trouble when I want to add a database.
_dataBase = QSqlDatabase::addDatabase("QPSQL");
After calling this method I have an error:
QSqlDatabase: QPSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
I include to PATH variable paths to:
PostgreSQL\9.3\bin
PostgreSQL\9.3\lib
PostgreSQL\9.3\include
Also I copy folder sqldrivers to Debug folder. Also tried to copy dlls drom this folder to Debug. Doesn't work either.

I came here googling because I had the same problem in Windows.
In my case to solve the issue I had to install PostgreSQL for Windows 32 bits since my Qt target was MinGW 32 bits.
Additionally, I had to add the PATH to the PostgreSQL bin and lib directories so Qt could find the right .dlls.
#SET PATH=C:\Program Files (x86)\PostgreSQL\9.6\bin\;C:\Program Files (x86)\PostgreSQL\9.6\lib\;%PATH%
The PATH can be set before launching Qt Creator or using the Qt Creator itself via the Build Environment in the Projects pane.

Add the system variable QT_DEBUG_PLUGINS=1 if you want to get full information of why the QPSQL driver has not been loaded.
Probably you will discover that Qt is not able to find it. Copy and paste the output here to know what exactly happens.

Use depends.exe on qsqlpsql.dll and found that this dll need libpq.dll from PostgreSQL\9.3\libfolder. Add libpq.dll to Debug folder and it works:)

Try pip install PyQt5 event if you already installed it using conda or installer. It helped me.

I got same problem with deploying Qt application (windeployqt didn't help). I had to copy more .dlls (libcrypto-1_1-x64.dll, libiconv-2.dll, libintl-8.dll, libpq.dll, libssl-1_1-x64.dll, libwinpthread-1.dll) from postgreSQL bin path (c:\Program Files\PostgreSQL\12\bin) next to .exe file (according to dependency walker).

Related

Cannot install Qt postgreSQL driver

I'm posting here with the hopes that someone will be kind enough to help me. Just to clarify, I'm sort of a newb, so I'd be really grateful if you give more details to your explanations.
I'm on Windows 10 64 bit, QT 5.9.1, PostgreSQL is 9.6.3 version.
I'm working on a project, where I need to get a postgresql database running and connect it to the code I'm doing right now. Unfortunately, when I try to install the driver, I run into all kinds of problems. I've been reading on threads on sites, but they are outdated and some folders do not match, which my first problem arises. For some reason I cannot get qmake to work, even though I edit the path in the variables.
I tried running the commands from here.
cd %QTDIR%\qtbase\src\plugins\sqldrivers\ps
ql
qmake "INCLUDEPATH+=C:/psql/include" "LIBS+=C:/psql/lib/ms/libpq.lib" psql.pro
nmake
Basically my folders don't aren't 100% as the guide, also I don't have a libpq.lib file
On my final attempt I tried the following:
qmake "INCLUDEPATH+=C:/PostgreSQL/pg96/include" "LIBS+=C:/PostgreSQL/pg96/lib/libpq.lib"
Project ERROR: Cannot run compiler 'cl'. Maybe you forgot to setup the environment?
You'll need to have PostgreSQL installed so you have libpq.lib and libpq.dll. You cannot compile the Qt PostgreSQL driver without these. You'll also need to find the include directory for your PostgreSQL install, the one that contains libpq-fe.h.
Then determine the paths to those. Set the PATH to include the directory with libpq.dll. Set LIBS to include the directory with libpq.lib. And set the INCLUDEPATH to include the directory with libpq-fe.h.
You'll probably need to do this within a "Visual Studio Command Prompt" or run vcvarsall.bat fist, too, so qmake can find Visual Studio.

DB Installation Issue: Binary files folder (bin) is missing in downloaded zip for MongoDB (Windows 64-bit)

I downloaded the MongoDB for Windows 64-bit from http://www.mongodb.org/downloads.
File name: mongodb-src-r3.0.3.zip
However, the zip folder doesn't have a bin folder & no .exe files to use for installation (as given in the installation steps).
The below commands say that I use Windows 7 64-bit architecture.
wmic os get caption
wmic os get osarchitecture
Even tried using the .msi (Installation Package) given in the same downloads page. It doesn't give any error. But still the bin folder is not created to test MongoDB (mongod.exe).
Am I missing something?
I also faced the same problem as #ArcherGilly told to install again and select the custom options and by doing this finally I found the bin folder with other txt file like license
C:\Program Files\MongoDB\Server\4.0 -> Previously there were only two folders
data
log
and Now along with the above two folders, there is bin folder along with 4 more files
LICENSE-Community.txt
MPL-2
README
THIRD-PARTY-NOTICES
THIRD-PARTY-NOTICES.gotools
I had the same problem, but once I used the .msi installer and selected 'custom', instead of 'complete', it installed the /bin folder.
I had the same issue.
It could be because you changed the installation directory to another drive where the windows folder isn't.
So if this your case, simply find the bin folder in the C: drive.
After the installation, I used the installer and chose the make changes option without making really any changes. After the process was finished I found the bin folder.
After downloading the msi and installation process. I found the bin folder but there is no mongo.exe file in that folder.
But when I run the path enclosed in " \mongo.exe" in command prompt, the mongo db is running.
while using .msi installer please select 'custom', instead of 'complete', it will create the bin folder at \Installation_Dir\MongoDB\Server\4.2\bin\
Thanks

How to set up Matlab MCR for Ubuntu and Netbeans (UnsatisfiedLinkedError)

I am deploying a Java EE project in a server that uses the MCR of Matlab for some image processing functions. I've been trying this for months I can't make it work. The problem is when it is going to uses the MCR it cannot find the .so libraries. I got this error:
javax.servlet.ServletException: Failed to find the library libmwmclmcrrt.so.7.13, required by MATLAB builder JA, on java.library.path. This library is typically installed along with MATLAB or the MCR, its absence may indicate an issue with that installation or r the current path configuration. The MCR version that this component is trying to use is 7.13.
ROOT CAUSE:
java.lang.UnsatisfiedLinkError: Failed to find the library libmwmclmcrrt.so.7.13, required by MATLAB Builder JA, on java.library.path. This library is typically installed along with MATLAB or the MCR, its absence may indicate an issue with that installation or the current path configuration. The MCR version that this component is trying to use is: 7.13.
The servers uses:
Ubutuntu 64 bits.
Netbeans 7.4
Glassfish
java 6 sdk
first it uses MCR 7.13 now it uses MCR 8.1
Things I've already tried:
Setting the environment variables LD_LIBRARY_PATH and XAPPLERSDIR with export:
export LD_LIBRARY_PATH=/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/runtime/glnxa64:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/bin/glnxa64:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/sys/os/glnxa64:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/sys/java/jre/glnxa64/jre/lib/amd64/native_threads:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/sys/java/jre/glnxa64/jre/lib/amd64/server:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/sys/java/jre/glnxa64/jre/lib/amd64:$LD_LIBRARY_PATH
export XAPPLRESDIR=/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/X11/app-defaults
Setting the environment variables LD_LIBRARY_PATH and XAPPLERSDIR with setenv:
Command setenv not found
Edit ld.so.conf file and run ldconfig
Add -Djava.library.path=my/path/to/so in glassfish
Add -Djava.library.path=my/path/to/so in Netbeans like says here:
giving 'java.library.path' in netbeans for .dll/.so files
I tried to set environment variables in Netbeans like said in this post: How to set Environment Variable in Netbeans?
But I can't find "Actions"
I tried to set environment variables in Netbeans like said in this post: https://askubuntu.com/questions/267071/ld-library-path-specification
But I can't find "Environment"
I've tried lots of more things that I can't remember and none of them works, it keeps showing the same error (now for version 8.1 instead of 7.13). Please I would I appreciate any help.
I had the same problem working with Linux, Java EE and Matlab. My solution was:
Open a terminal
Log as root $ su and type password
Edit the /etc/enviroment $ gedit /etc/enviroment
Add the needed variables, in our case:
LD_LIBRARY_PATH="/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/runtime/glnxa64:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/bin/glnxa64:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/sys/os/glnxa64:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/sys/java/jre/glnxa64/jre/lib/amd64/native_threads:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/sys/java/jre/glnxa64/jre/lib/amd64/server:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/sys/java/jre/glnxa64/jre/lib/amd64"
XAPPLRESDIR="/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/X11/app-defaults"
Save the file and reboot.
Start the server as root.
What happened with your other solutions, like the export, was that there was no visibility between the variables that you created and the GlassFish server. Setting variables in the environment will asure you that they are visible from any other program/process.

Eclipse executable launcher error: Unable to locate companion shared library

I had Eclipse Indigo installed on my computer with the Android plugin and it was working perfectly for about two weeks. Today, I updated java and quicktime then restarted my computer. When it booted back up, eclipse had completely vanished - all the program files have completely disappeared. When I try to reinstall it, I get an error message that says
The Eclipse executable launcher was unable to locate its companion shared library.
What happened and how can I fix it?
I've just encountered the same issue. The problem for me was Windows 7 default unzipper program. It has a problem when it encounters files that have a deep file structure. I read about this issue some time ago but can't recall the article. Fix for me is to unzip the Eclipse download using WinZip (or some other tool which does'nt have this issue).
Check eclipse.ini, there are two entries like:
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20120913-144807
For some twisted reason jars have version in their name - so if you upgrade/have two different version of eclipse( while eclipse.ini is either linked or provided as system wide conf file for eclipse ) it will cause above error.
That sounds pretty bad and weird. But reinstalling isn't that hard - download, unzip, change the default memory allocation, run Eclipse, install necessary plugins and features.
And almost all of the important preferences are in your workspace. The only important one I can think of outside of the workspace is the aforementioned memory allocation, which you can set on the command line or in the ECLIPSE.INI file.
During unzip in a cygwin directory on Win7, .exe and .dll need to be given executable mode. This is the solution from a mintty (or other $TERM) terminal run with cygwin on windows 7:
me#mymachine ~/eclipse
$ find . -name "*.dll" -exec chmod +x {} \;
tried with Juno (eclipse 4.2) freshly unzipped, cygwin 1.7.something
I have seen this in MacOS Sierra. Sometimes unzipping the app leaves extended attributes that seem to prevent the startup. The following command line removes extended attributes and seems to fix the problem:
xattr -c Eclipse.app
It also works for other applications that are built on the eclipse framework.
Another problem (that I ran into) is that Cygwin's unzip utility (UnZip 6.00 of 20 April 2009, by Cygwin. Original by Info-ZIP.) does not always correctly unzip everything needed for Eclipse to actually run.
Using 7ZIP v9.20 got Eclipse Indigo (3.7.2) up and running for me on Win7 64bit with 32bit JVM and 32bit Eclipse.
(First time I've ever had Cygwin's unzip fail on me...)
I just ran into this myself and found that, indeed, as one post above stated: using cygwin and gunzip or unzip to set up your eclipse environment the permissions on the .exe and .dll files will be incorrect and the JVM will not run them properly.
Quick solution:
#switch to the eclipse target folder
cd /cygdrive/c/Program\ Files\ \(x86\) #or wherever you put eclipse
find ./ -regextype posix-extended -mindepth 1 -type f -regex ".*\.exe|.*\.dll" |\
xargs chmod -v 750
I meet this issue after copy a eclipse installation to another pc.I find the eclipse installation auto created the .p2 directory on my c:\Users\xx.p2, and --launcher.library refer to here.So it doesn't exist on my another pc.
My resolution is to reinstall eclipse:
a)Double click eclipse-inst-win64.exe
b)Click to change to advanced mode.
c)Uncheck the Bundle Pool
d)Finish your installation and copy again.Everything will work well.
My experience and advice: Install Eclipse Juno on C: drive.
After download the zip, put it on C:, click the right mouse button -> extract here. Then a folder called eclipse will be created in C: drive.
Then go to Eclipse executable, run it, and all will be ok.
I faced this problem and solved it by running Eclipse as admin.
Problem happened when I unzipped using Cygwin. Used the Windows XP standard unzip program and it worked.
if you are having two eclipse then sometime this happens
you only have to remove
-startup
plugins\org.eclipse.equinox.launcher_1.0.100.v20080509-1800.jar
from eclipse.ini file beside eclipse.exe(Launcher)
Also see this related question's answer.
The gist is: Try unzipping it again with a solid unzip tool. Sometimes unzipping goes wrong, especially with the built-in Windows Explorer tool.
i have this error message when i use extract the files as follows:
action\select all
drag and drow the files to an new folder
Somehow information about the folders get lost
when i use "action\extract to..." it works.
Also, remember to right click on eclipse, then choose Security Unblock
Mostly this is related to problems on windows with the unzipping it seems. (See other answers here for that).
The second largest issue seems to be that eclipse is not able to find java or finds a java version which is too old or even older eclipse installations.
Here's another take to the latter problem and a small twist to solve it. My work environment is on a linux system, without root access, and with software installations where I can configure which versions to use in a kind of config file. However I have no influence on the way those software packages are installed and they are immutable to me.
I download and untar the latest eclipse as usual to a user disk for which I have write permissions. Then I configure myself an alias to always temporarily cd into the eclipse installation when starting. That regardless of where I work on the file systems, eclipse always finds its correct libraries. It seems in some places, eclipses default search path for java digs out an installation (of java or older eclipses or sth else) in my environment that it really should not use.
Here's the alias:
alias eclipse '(pushd /enter_path_to_eclipse_install_dir_here/eclipse ; ./eclipse ; popd)'
Now you can start it normally from e.g. your project or arbitrary work directory:
eclipse
Or also put it in the background
eclipse &
Maybe this helps for people in convoluted work environments.
Try running eclipse.exe as administrator or using Eclipse Helios.
I have copied the Eclipse folder from another machine where the path was different and that was the root of this problem. Changing the plugins path in ECLIPSE.INI worked for me !!
Solution for Mac
Reason:
Eclipse copies from one location to other
Solution:
Paths change needed in /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse.ini
Fix path for plugins\org.eclipse.equinox.launcher_1.0.100.v20080509-1800.jar
I had the same problem when I was trying to install it on Windows 8.
But it was an zip composed file....
Ones I unzip and Run "eclipes.exe" file as run As 'Administrator' it was resolved.
Now I am enjoying it very well.
I had the same message after a system restore with the eclipse folder (V. 3/2020) being located on a second drive (that was NOT restored at the same time, I use it for large files mainly).
Restoring the faulty installations C:\Users<user>.p2 folder to the new installation (referenced in eclipse.ini of the eclipse folder) worked.
Keep shorter folder name, fixed for me.
I faced this issue recently: (In my case it was installation of STM32CubeMX software):
what I faced: I have two users in my laptop, I had installed the software in one user but on the hard disk partition: D:\
Now I had tried to work on another user!
-- I think you know why I got the error --
So as I was working on the 'other' user account, I got this error every time I tried to compile/build my project - obviously, Because I installed using one user and am working on another.
Workaround: Already mentioned in the above answers clearly!
What I did differently: I tried using the S/W in the other user, but there seems to be issues on the path file/location:
so I reinstalled the location in the user account I want to use and am running it properly now!
Note: While Installing it did ask about installing the software for all user/ current user : I mistakenly had given 'current - user' =(
I also faced ths problem, I just deleted the extracted file and extracted it again.
I have a .rar file.
This problem occurs when the file is not extracted completely.
You might changed your drive-letter:
once u had installed eclipse on D:\, after windows reinstall the drive-letter is now E:\ (for example).
look into eclipse.ini in your eclipse folder, there are some lines where the drive-letter is still D:\
This happened to me when I tried to open eclipse.exe before the .zip file finished extracting. Make sure all dependencies are unzipped or unpacked before opening the .exe.
I had this issue on Linux (CentOS 7 64 bit) with 32-bit Eclipse Neon and 32-bit JRE 8. Non of the answers here or in similar questions were helpful, so I thought it can help someone.
Equinox launcher (eclipse executable) is reading the plugins/ directory and then searches for eclipse_xxxx.so/dll in org.eclipse.equinox.launcher.<os>_<version>/. Typically, the problem is in eclipse.ini pointing to the wrong version of Equinox launcher plugin. But, if the file system uses 64-bit inodes, such as XFS and one of the files gets inode number above 4294967296, then the launcher fails reading the plugins/ directory and this error message pops up. Use ls -li <eclipse>/plugins/ to check the inode numbers.
In my case, moving to another mount with 32-bit inodes resolved the problem.
See: http://www.tcm.phy.cam.ac.uk/sw/inodes64.html
I encountered this error with the Eclipse 4.10 installer. We had failed to complete the install correctly due to platform security settings and attempted to uninstall but had to do it by hand since no uninstaller was introduced during the failed install. We suspected this corrupted the end result - even after re-installing.
The solution was to use the JVM to launch Eclipse and bypass the launcher executable entirely. The following command successfully launches Eclipse 4.10 (some parameters will change based on the version of Eclipse):
%JDK190%\bin\javaw.exe -jar C:\<fully_qualified_path_to_eclipse>\Eclipse410\plugins\org.eclipse.equinox.launcher_1.5.200.v20180922-1751.jar -clean -showsplash
After using this command/shortcut to launch Eclipse we had no further errors with Eclipse itself but we weren't able to use the EXE launcher in the future. Even after a year of using this version, the launcher continues to display this same error.
To be clear, you'll have to modify your javaw.exe command to match your system specifications on MS Windows.
I got similar error sometime back. I had copied the eclipse setup from another laptop to mine. The issue with my setup was that path of the "--launcher.library" in the eclipse.ini file. The path in --launcher.library was that of the old machine and hence I was getting the error
I changed the path of "--launcher.library" in eclipse.ini to the path of eclipse on my laptop and the issue got resolved. I hope this is helpful to someone is getting this error.
remove it and run eclipse-installer again without root
I have create Demo.exe using Eclipse RCP.
I have run Demo.exe using C-Drive to same error generate like...
Solution : You might changed your drive for example
C:\Demo.exe to D:\Demo.exe
Step 1 : First Copy/Cut your .exe file like C:\Demo.exe
Step 2 : After Paste another drive like D:\Demo.exe
After executable file launching successfully.
I hope my answer is useful.

Where do I get libpq source?

I want to write application which uses Postgresql as DBMS.
To write client application do I need libpq library and header files?
If yes where I would get libpq library and header files.
Libpq is included in the full PostgreSQL source code. You can use just libpq without the rest of PostgreSQL, but must download the full package.
You can download it from the PostgreSQL Downloads page.
Once you extract the full package it is inside src\interfaces\libpq.
The PostgreSQL installation guide details how to install only the client libraries in the Installation section, under Client-only installation.
Libpq documentation is also available.
In postgresql sources, src\interfaces\libpq.
And yes, it is possible to compile only the libpq.
get the lipq from repo, {for debian} :
sudo apt-get install libpq-dev
I was also facing this issue but didn't got a clear answer:
This issue clearly states that while installing diesel-cli system is not able to locate libpq.lib
First of all you should have a Postgres installed on your machine.
Also diesel require visual c++, thus download and install it if not already, the size of setup will be ~5gb.
Once above installations are done you need to setup environment variables:
In my case path of Postgres installation is C:\Program Files\PostgreSQL thus add 2 environment variable path under User variables add new in Path where your libpq.lib is located in my case it is available in both C:\Program Files\PostgreSQL\12\lib and C:\Program Files\PostgreSQL\12\bin
Once this is added create one more environment variable PQ_LIB_DIR and set path as shown below
Note: Once done re-trigger the installation command in a new cmd window
Source: pq-sys and github-solution
For Windows users, it's in (version may be different)
C:\Program Files\PostgreSQL\11\lib
There you find libpq.lib. Provide this directory to Linker input.
Don't forget to include C:\Program Files\PostgreSQL\11\include directory for include directories.
I fix this problem reccently. This is a solution if you don't want to install Postgres in you windows.
At first, you need download Postgres Binaries. The version I download is 13.6, but it's seems like any version is fine.
Unzip the zip file.Copy libpq.lib from pgsql\lib to shomewhere like C:\Program Files\Postgres\lib.
Execute the following command in cmd window.
setx PQ_LIB_DIR "{where_you_copy_to}"
Open a new cmd windows and install diesel_cli
cargo install diesel_cli --no-default-features --features postgres
In linux vertify you get the libpq.
1st, there is an app: pg_config: https://www.postgresql.org/docs/current/app-pgconfig.html
after you found out the pg_config absolute bin path.(if you installed multi version of postgressql) Then You can get
--includedir
Print the location of C header files of the client interfaces.
--libdir
Print the location of object code libraries.
Then try to compile/build some example code: https://www.postgresql.org/docs/current/libpq-example.html
Some common failure example: https://www.postgresql.org/docs/current/libpq-build.html
You can install Postgres locally from https://www.enterprisedb.com/downloads/postgres-postgresql-downloads but select only "Command line tools" for install.
After that, you can found libpq.dll in C:\Program Files\PostgreSQL\15\bin