pdobsan / pynauty

Isomorphism testing and automorphisms of graphs
Other
55 stars 9 forks source link

Build pynauty natively on Windows #14

Closed DaveDRoberts closed 3 years ago

DaveDRoberts commented 3 years ago

I would like to be able to be able to build pynauty natively on Windows 10 e.g. using Anaconda without having use programs such as Cygwin or WSL. Pynauty is utilised by graph state compass (gsc) made by Sam Morley-Short, which will be used by PhotonGraph.

It would be really useful if pynauty could be simply installed using Anaconda on Windows!

Happy to help out if can!

pdobsan commented 3 years ago

I would like to be able to be able to build pynauty natively on Windows 10 e.g. using Anaconda without having use programs such as Cygwin or WSL.

Not sure what you mean by "building natively using Anaconda" which is a distribution platform and not a compiler. In any case, I don't think that is possible to avoid cygwin on windows since to compile nauty's library modules on windows you need an emulated posix environment plus the tools gcc and make.

Pynauty is utilised by graph state compass (gsc) made by Sam Morley-Short, which will be used by PhotonGraph.

I have found no accessible traces of pynauty in these repos.

Happy to help out if can!

Well, I have neither access to windows computers nor experience with cygwin on them. The only thing I can try to build a binary wheel for windows using cygwin in Github actions. To this end I have started experiencing with cygwin in the cygwin-build branch, made some progress but no success yet.

So if you can provide a complete and working github actions workflow in this direction that might help.

Alternatively, if you install cygwin, make, gcc on your windows machine then you can just add pynauty as a dependency of your package and pip will automatically build it for you as it is explained in the Readme.

DaveDRoberts commented 3 years ago

Apologies for the confusing language. What I meant was could pynauty be compiled and then distributed through Anaconda so that the end-user didn't require gcc or make. But it looks like this may require some work.

I have found no accessible traces of pynauty in these repos.

gsc doesn't list pynauty as a dependence but it definitely uses it. Photongraph doesn't use pynauty but I would like to utilise features from gsc.

I don't have much experience with Cygwin or writing Github actions but I can look into this.

I think the easiest solution is the one that I currently have which is to use WSL.