# F2py compile error with full path of signature file on Windows

**URL:** <https://fortran-lang.discourse.group/t/f2py-compile-error-with-full-path-of-signature-file-on-windows/4211>\
**Category:** Help\
**Created:** [August 24, 2022, 10:28am UTC](https://fortran-lang.discourse.group/t/f2py-compile-error-with-full-path-of-signature-file-on-windows/4211 "2022-08-24T10:28:29Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![jmrohwer](https://avatars.discourse-cdn.com/v4/letter/j/f9ae1b/32.png) [@jmrohwer](https://fortran-lang.discourse.group/u/jmrohwer)\
**Post date:** [August 24, 2022, 10:28am UTC](https://fortran-lang.discourse.group/t/f2py-compile-error-with-full-path-of-signature-file-on-windows/4211/1 "2022-08-24T10:28:30Z")

</div>

I am trying to port the build system for a python package ([GitHub - PySCeS/pysces: The official PySCeS project source code repository.](http://github.com/PySCeS/pysces)) from `numpy.distutils` to use `scikit-build` because of the deprecation of `distutils` (the package contains 2 Fortran extension modules wrapped with `f2py`). To get to know the system I’ve started with a minimal example. I have been getting compile failures on Windows (on Linux and macOS everything works).

See also [python - f2py compile error with signature file on Windows - Stack Overflow](https://stackoverflow.com/questions/73464905/f2py-compile-error-with-signature-file-on-windows)

Minimal example:

**hi.f**

```auto
      SUBROUTINE HELLO()
      PRINT*,"Hello from fortran"
      END

```

**hi.pyf**

```auto
! -*- f90 -*-
! Note: the context of this file is case sensitive.

python module hi ! in 
    interface ! in :hi
        subroutine hello ! in :hi:hi.f
        end subroutine hello
    end interface 
end python module hi

! This file was auto-generated with f2py (version:1.23.2).
! See:
! https://web.archive.org/web/20140822061353/http://cens.ioc.ee/projects/f2py2e

```

During compilation with `python setup.py build` the build fails. In tracking it down I saw that ninja/cmake expands the full path of the source files and this is where it fails. To ensure that it is not a problem with the `skbuild` build system I verified that the failure can be reproduced on the command line using `f2py` on its own as follows - copy the Fortran files above to the same folder and then run in a command prompt:

```auto
(skbuild) Z:\Documents\Python\skbuild_test\simple\hello\shout>f2py.exe -m hi -c hi.pyf hi.f

```

(works and generates the `.pyd` and `.dll` files)

However, specifying the full path, fails:

```auto
(skbuild) Z:\Documents\Python\skbuild_test\simple\hello\shout>f2py.exe -m hi -c Z:/Documents/Python/skbuild_test/simple/hello/shout/hi.pyf Z:/Documents/Python/skbuild_test/simple/hello/shout/hi.f
running build
running config_cc
INFO: unifing config_cc, config, build_clib, build_ext, build commands --compiler options
running config_fc
INFO: unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
running build_src
INFO: build_src
INFO: building extension "hi" sources
creating C:
creating C:Users
creating C:Users\jr
creating C:Users\jr\AppData
creating C:Users\jr\AppData\Local
creating C:Users\jr\AppData\Local\Temp
creating C:Users\jr\AppData\Local\Temp\tmpdbudw6jh
creating C:Users\jr\AppData\Local\Temp\tmpdbudw6jh\src.win-amd64-3.10
creating C:Users\jr\AppData\Local\Temp\tmpdbudw6jh\src.win-amd64-3.10\Documents
creating C:Users\jr\AppData\Local\Temp\tmpdbudw6jh\src.win-amd64-3.10\Documents\Python
creating C:Users\jr\AppData\Local\Temp\tmpdbudw6jh\src.win-amd64-3.10\Documents\Python\skbuild_test
creating C:Users\jr\AppData\Local\Temp\tmpdbudw6jh\src.win-amd64-3.10\Documents\Python\skbuild_test\simple
creating C:Users\jr\AppData\Local\Temp\tmpdbudw6jh\src.win-amd64-3.10\Documents\Python\skbuild_test\simple\hello
creating C:Users\jr\AppData\Local\Temp\tmpdbudw6jh\src.win-amd64-3.10\Documents\Python\skbuild_test\simple\hello\shout
INFO: f2py options: []
INFO: f2py: Z:/Documents/Python/skbuild_test/simple/hello/shout/hi.pyf
error: [WinError 123] The filename, directory name, or volume label syntax is incorrect: 'C:C:\\Users\\jr\\AppData\\Local\\Temp\\tmpdbudw6jh\\src.win-amd64-3.10\\Documents\\Python\\skbuild_test\\simple\\hello\\shout'

```

The problem seems to be with the `creating C:Users` part leading to the malformed filename in the last line.

Specifying only the filename for `hi.pyf` but the full path for `hi.f` **does work** strangely enough, but as soon as the full path for `hi.pyf` is specified it fails. As mentioned, on Linux and macOS all works fine.

* * *

**NOTE:**  
I could of course skip the `.pyf` file and then it works. However, the Fortran code I’m wrapping is F77 and needs to be redistributed in unmodified form due to licensing conditions, so I do need a custom `.pyf` file to integrate it into my Python module.

* * *

**System**

- Windows 10 64-bit
- MSVC 2022 build tools
- mingw 11.2.0.07112021 (installed with chocolatey)
- python 3.10.6
- numpy 1.23.2

I have no idea what is going on here.
