wishi
wishi

Reputation: 7387

Windows 7 and python with rsync

I want to develop with a Python module that's using rsync for file transfers over SFTP and webdav. I found one lib called pysync (and others eventually). But I'm on Windows 7. I use VisualStudio 2010, but the build fails... due to "problems".

So I wonder whether someone knows a working librsync or something for Windows, MacOS and Linux - because I have this cross-platform requirement.

 C:\Python27\Scripts>pip.exe install pysync
    Downloading/unpacking pysync
      Downloading pysync-2.24.tar.bz2
      Running setup.py egg_info for package pysync

        file librsync.py (for module librsync) not found
        warning: no files found matching 'librsync_wrap.*'
        warning: no files found matching 'librsync\COPYING'
        warning: no files found matching 'librsync\*.h'
        warning: no files found matching 'librsync\configure'
        warning: no files found matching 'librsync\Makefile.in'
        warning: no files found matching 'librsync\config.h.in'
        warning: no files found matching 'librsync\config.guess'
        warning: no files found matching 'librsync\config.sub'
        warning: no files found matching 'librsync\install-sh'
        warning: no files found matching 'librsync\popt\Makefile.in'
    Installing collected packages: pysync
      Running setup.py install for pysync
        file librsync.py (for module librsync) not found
        file librsync.py (for module librsync) not found
        building 'md4' extension
        C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -IC:\Python27\includ
    e -IC:\Python27\PC /Tcmd4sum/md4module.c /Fobuild\temp.win32-2.7\Release\md4sum/md4module.obj
        md4module.c
        c:\python27\include\pyconfig.h(227) : fatal error C1083: Cannot open include file: 'basetsd.h': No such file or directory
 [...]

    ----------------------------------------
    Command C:\Python27\python.exe -c "import setuptools;__file__='C:\\Python27\\Scripts\\build\\pysync\\setup.py';exec(compile(op
    en(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record c:\users\w
    ishi\appdata\local\temp\pip-kvzhhk-record\install-record.txt failed with error code 1
    Storing complete log in C:\Users\wishi\AppData\Roaming\pip\pip.log

    C:\Python27\Scripts>

Upvotes: 0

Views: 2286

Answers (1)

Spencer Rathbun
Spencer Rathbun

Reputation: 14900

Are you really tied to rsync? You're using SFTP to transfer the files, so paramiko may work for you. If you really need a working librsync, you have a couple of options.

  1. Search for a pre compiled version and install (hope your google fu is strong...)
  2. Install cygwin, download the source, run the make install, after changing the options for a windows build.
  3. Download the source to a linux box, and set it up to cross compile
  4. Use getGnuWin32 to get all the tools necessary to build the library, put them in your path, then rerun pip. It should sucessfully run the make commands this time to build the library... if it can find the source code.

All of these things (except 1) require the source for this library, which is just a cost of doing cross platform business. If you don't like that there is no windows version already available, then rsync may not be the tool for you.

Finally, according to the updates here, if anyone wants windows binaries, they need to contact the developer, and he'll build them.

Upvotes: 1

Related Questions