MiG
August 9, 2022, 8:27am
1
Hi,
I am trying to use Psikit , but I have encountered following issue:
Fatal Error: PsiOutStream: Failed to open file.
Error occurred in file: D:\a\1\s\psi4\src\psi4\libpsi4util\PsiOutStream.cc on line: 46
which is connected to psi4.core.be_quiet().
I have reproduced same issue in pure psi4 environment also.
I did following:
conda create -n psi4 python=3.8
conda activate psi4
conda install -c conda-forge -c psi4 psi4
python
>>>import psi4
>>>psi4.core.be_quiet()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
RuntimeError:
Fatal Error: PsiOutStream: Failed to open file.
Error occurred in file: D:\a\1\s\psi4\src\psi4\libpsi4util\PsiOutStream.cc on line: 46
Any clue how to solve this?
Cheers,
M
MiG
August 9, 2022, 10:00am
2
I think I have found the issue:
From core.cc
core.def("be_quiet", py_be_quiet,
"Redirects output to ``/dev/null``. "
"To switch back to regular output mode, use :func:`~psi4.core.reopen_outfile()`. "
"Doesn't work with Windows.");
void py_be_quiet() {
py_close_outfile();
auto mode = std::ostream::app;
outfile = std::make_shared<PsiOutStream>("/dev/null", mode);
if (!outfile) throw PSIEXCEPTION("Psi4: Unable to redirect output to /dev/null.");
}
from Psikit
class Psikit(object):
def __init__(self, threads=4, memory=4, debug=False):
import psi4
self.psi4 = psi4
self.psi4.set_memory("{} GB".format(memory))
#self.psi4.set_options({"save_jk": True}) # for JK calculation
self.psi4.set_num_threads(threads)
self.wfn = None
self.mol = None
self.debug = debug
self.tempdir = mkdtemp()
if self.debug:
self.psi4.core.set_output_file("psikit_out.dat", True)
else:
self.psi4.core.be_quiet()
Basically, Psikit author used function that is incompatible with windows machines.
hokru
August 9, 2022, 10:09am
3
Good to know, thanks for investigating.