I am trying to install a Python package from source on my computer (Windows 11 build 22000.593, Intel i5 CPU). The package source files are on a WSL2 Debian partition. The folder containing the package files and everything inside it has full read and write permissions (sudo chmod 777 -R package_name). The setup.py file of the package uses the numpy.distutils module. The imports on this file are:
import os
from numpy.distutils.core import Extension, setup
from setuptools import find_packages
When I install the package via either python -m pip install -e . -v --no-cache-dir, pip install -e . -v --no-cache-dir, or python -m setup.py develop on PowerShell in Administrator mode, I get the following output:
python -m pip install -e . -v --no-cache-dir
Using pip 22.0.4 from C:\Program Files\Python39\lib\site-packages\pip (python 3.9)
Obtaining file://wsl%24/Debian/home/username/package_name
Preparing metadata (setup.py) ... Running command python setup.py egg_info
running egg_info
running build_src
build_src
building extension "package_name.fortran_source1" sources
f2py options: []
adding 'build\src.win-amd64-3.9\build\src.win-amd64-3.9\package_name\fortranobject.c' to sources.
adding 'build\src.win-amd64-3.9\build\src.win-amd64-3.9\package_name' to include_dirs.
adding 'build\src.win-amd64-3.9\package_name\fortran_source1-f2pywrappers2.f90' to sources.
building extension "package_name.fortran_source2" sources
f2py options: []
adding 'build\src.win-amd64-3.9\build\src.win-amd64-3.9\package_name\fortranobject.c' to sources.
adding 'build\src.win-amd64-3.9\build\src.win-amd64-3.9\package_name' to include_dirs.
adding 'build\src.win-amd64-3.9\package_name\fortran_source2-f2pywrappers2.f90' to sources.
building extension "package_name.fortran_source3" sources
f2py options: []
adding 'build\src.win-amd64-3.9\build\src.win-amd64-3.9\package_name\fortranobject.c' to sources.
adding 'build\src.win-amd64-3.9\build\src.win-amd64-3.9\package_name' to include_dirs.
adding 'build\src.win-amd64-3.9\package_name\fortran_source3-f2pywrappers2.f90' to sources.
building extension "package_name.module1.fortran_source4" sources
f2py options: []
adding 'build\src.win-amd64-3.9\build\src.win-amd64-3.9\package_name\module1\fortranobject.c' to sources.
adding 'build\src.win-amd64-3.9\build\src.win-amd64-3.9\package_name\module1' to include_dirs.
building extension "package_name.module2.fortran_source5" sources
f2py options: []
adding 'build\src.win-amd64-3.9\build\src.win-amd64-3.9\package_name\module2\fortranobject.c' to sources.
adding 'build\src.win-amd64-3.9\build\src.win-amd64-3.9\package_name\module2' to include_dirs.
adding 'build\src.win-amd64-3.9\package_name\module2\fortran_source5-f2pywrappers2.f90' to sources.
build_src: building npy-pkg config files
C:\Users\username\AppData\Roaming\Python\Python39\site-packages\setuptools\command\install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
warnings.warn(
creating C:\Users\username\AppData\Local\Temp\pip-pip-egg-info-x66pf7kp\package_name.egg-info
writing C:\Users\username\AppData\Local\Temp\pip-pip-egg-info-x66pf7kp\package_name.egg-info\PKG-INFO
writing dependency_links to C:\Users\username\AppData\Local\Temp\pip-pip-egg-info-x66pf7kp\package_name.egg-info\dependency_links.txt
writing requirements to C:\Users\username\AppData\Local\Temp\pip-pip-egg-info-x66pf7kp\package_name.egg-info\requires.txt
writing top-level names to C:\Users\username\AppData\Local\Temp\pip-pip-egg-info-x66pf7kp\package_name.egg-info\top_level.txt
writing manifest file 'C:\Users\username\AppData\Local\Temp\pip-pip-egg-info-x66pf7kp\package_name.egg-info\SOURCES.txt'
C:\Users\username\AppData\Roaming\Python\Python39\site-packages\setuptools\command\egg_info.py:633: SetuptoolsDeprecationWarning: Custom 'build_py' does not implement 'get_data_files_without_manifest'.
Please extend command classes from setuptools instead of distutils.
warnings.warn(
reading manifest file 'C:\Users\username\AppData\Local\Temp\pip-pip-egg-info-x66pf7kp\package_name.egg-info\SOURCES.txt'
adding license file 'LICENSE'
writing manifest file 'C:\Users\username\AppData\Local\Temp\pip-pip-egg-info-x66pf7kp\package_name.egg-info\SOURCES.txt'
Preparing metadata (setup.py) ... done
Requirement already satisfied: numpy in c:\program files\python39\lib\site-packages (from package_name==2.4.0a14) (1.20.3)
Installing collected packages: package_name
Running setup.py develop for package_name
Running command python setup.py develop
running develop
C:\Users\username\AppData\Roaming\Python\Python39\site-packages\setuptools\command\easy_install.py:144: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
warnings.warn(
C:\Users\username\AppData\Roaming\Python\Python39\site-packages\setuptools\command\install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
warnings.warn(
running build_scripts
running egg_info
running build_src
build_src
building extension "package_name.fortran_source1" sources
f2py options: []
adding 'build\src.win-amd64-3.9\build\src.win-amd64-3.9\package_name\fortranobject.c' to sources.
adding 'build\src.win-amd64-3.9\build\src.win-amd64-3.9\package_name' to include_dirs.
adding 'build\src.win-amd64-3.9\package_name\fortran_source1-f2pywrappers2.f90' to sources.
building extension "package_name.fortran_source2" sources
f2py options: []
adding 'build\src.win-amd64-3.9\build\src.win-amd64-3.9\package_name\fortranobject.c' to sources.
adding 'build\src.win-amd64-3.9\build\src.win-amd64-3.9\package_name' to include_dirs.
adding 'build\src.win-amd64-3.9\package_name\fortran_source2-f2pywrappers2.f90' to sources.
building extension "package_name.fortran_source3" sources
f2py options: []
adding 'build\src.win-amd64-3.9\build\src.win-amd64-3.9\package_name\fortranobject.c' to sources.
adding 'build\src.win-amd64-3.9\build\src.win-amd64-3.9\package_name' to include_dirs.
adding 'build\src.win-amd64-3.9\package_name\fortran_source3-f2pywrappers2.f90' to sources.
building extension "package_name.module1.fortran_source4" sources
f2py options: []
adding 'build\src.win-amd64-3.9\build\src.win-amd64-3.9\package_name\module1\fortranobject.c' to sources.
adding 'build\src.win-amd64-3.9\build\src.win-amd64-3.9\package_name\module1' to include_dirs.
building extension "package_name.module2.fortran_source5" sources
f2py options: []
adding 'build\src.win-amd64-3.9\build\src.win-amd64-3.9\package_name\module2\fortranobject.c' to sources.
adding 'build\src.win-amd64-3.9\build\src.win-amd64-3.9\package_name\module2' to include_dirs.
adding 'build\src.win-amd64-3.9\package_name\module2\fortran_source5-f2pywrappers2.f90' to sources.
build_src: building npy-pkg config files
error: [WinError 50] The request is not supported
error: subprocess-exited-with-error
× python setup.py develop did not run successfully.
│ exit code: 1
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
full command: 'C:\Program Files\Python39\python.exe' -c '
exec(compile('"'"''"'"''"'"'
# This is <pip-setuptools-caller> -- a caller that pip uses to run setup.py
#
# - It imports setuptools before invoking setup.py, to enable projects that directly
# import from `distutils.core` to work with newer packaging standards.
# - It provides a clear error message when setuptools is not installed.
# - It sets `sys.argv[0]` to the underlying `setup.py`, when invoking `setup.py` so
# setuptools doesn'"'"'t think the script is `-c`. This avoids the following warning:
# manifest_maker: standard file '"'"'-c'"'"' not found".
# - It generates a shim setup.py, for handling setup.cfg-only projects.
import os, sys, tokenize
try:
import setuptools
except ImportError as error:
print(
"ERROR: Can not execute `setup.py` since setuptools is not available in "
"the build environment.",
file=sys.stderr,
)
sys.exit(1)
__file__ = %r
sys.argv[0] = __file__
if os.path.exists(__file__):
filename = __file__
with tokenize.open(__file__) as f:
setup_py_code = f.read()
else:
filename = "<auto-generated setuptools caller>"
setup_py_code = "from setuptools import setup; setup()"
exec(compile(setup_py_code, filename, "exec"))
'"'"''"'"''"'"' % ('"'"'\\\\wsl$\\Debian\\home\\username\\package_name\\setup.py'"'"',), "<pip-setuptools-caller>", "exec"))' develop --no-deps --user --prefix=
cwd: \\wsl$\Debian\home\username\package_name\
error: subprocess-exited-with-error
× python setup.py develop did not run successfully.
│ exit code: 1
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
I get the same error without using the development mode of pip, the output is slightly different but the "full command" line is identical. The package is installed successfully when I use pip3 install -e . on the WSL2 Debian console. I have Python 3.9.12, pip 22.0.4, setuptools 62.0.0, numpy 1.20.3, gfortran 11.2.0 (built by MYSYS2), and Visual Studio Build Tools 2019 16.11.11 (for MSVCC) installed on the Windows side.
What puzzles me is that I have another Windows 11 computer with an almost identical setup (source files on a WSL2 Debian partition, same Python and Python packages versions, etc., the only relevant differences I can think of is that I have Visual Studio Community 2019 installed instead of Visual Studio Build Tools 2019, and that I have an AMD CPU), and the installation runs successfully on the Windows side.
Why do I get this error and how to fix it?