Thank you all for your comments.
Just as a preface, I asked this question because we have a need for using lammps.py natively in the Windows environment for a project. Perhaps the new python extensions that run in the native LAMMPS scripts (once they are provided in the Windows binaries) can be used instead.
no. if you want to use any advanced features of the python module, you
need the ctypes interface of the shared object, i.e. lammps.py to
there is *very* little chances that the PYTHON package in LAMMPS will
be supported on windows, because windows doesn't ship with a "natively
bundled" python environment and bundling a python distribution within
the LAMMPS windows installer is out of the question as it compiling
them with and without support for a specific external python package
or forcing people to install it, even if they don't want to use it.
maintaining python in a not natively compiled application is a big
mess, even on linux.
The one thing I now understand is that the LAMMPS windows binaries have been originating come from either Cygwin and Mingw-w64. I
there was somebody that contributed changes to compile LAMMPS with
Visual C++ and provided project files. but those had been abandoned
long ago. i think LIGGGHTS does support building with VC++ (probably
I just took a quick scan of the file Makefile.mingw64-cross. The shlib option is there. So, my remaining questions are: 1) Does this option create an .so or a .dll in this environment?
it is there by way of copy-and-modify, not by design.
And can that object, whatever it is, be used with lammps.py outside the Mingw environment or only in the Mingw environment?
neither. like i already mentioned, all symbols in a .dll file on
windows have to be explicitly exported with __declspec(dllexport), so
you can build a .dll file, but you cannot use it. see, e.g.:
for a dynamically loaded shared object, some additional work is
needed. like i said, i know in principle from working on plugins for
VMD how this can be done, but it is a bit of a laborious process, and
it needs to be done by a person that knows what he/she is doing *and*
knows LAMMPS and what kind of changes steve is comfortable with to
include and what not.
make a proposal that would make it attractive for me to collaborate,
but at the moment, this is not a very attractive prospect. developing
and particularly debugging on windows is quite a nuisance.