Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fails to install on MinGW x64 #1009

Closed
RoDuth opened this issue Dec 22, 2021 · 8 comments
Closed

Fails to install on MinGW x64 #1009

RoDuth opened this issue Dec 22, 2021 · 8 comments
Labels
help wanted installation-issues Issue related to installation problems. windows Windows related issue

Comments

@RoDuth
Copy link

RoDuth commented Dec 22, 2021

Until 2 days ago the below was working. Not sure this is a msys2/mingw or pyproj issue. First noticed on an appveyor (Visual Studio 2109) build, since confirmed locally. Need mingw x64 due to GTK+3 dependency.

Installation method/steps

  • Installation method (conda, pip wheel, from source, etc...)
    pip install pyproj
  • How did you install PROJ? Where is it installed?
    $ pacman -S mingw-w64-x86_64-proj
    C:\msys64\mingw64\bin\proj.exe
  • Please provide all commands/steps you used to install pyproj and PROJ.
    am not sure these are all needed but..
$ pacman -Syuu  # twice if needed
$ pacman --needed -S base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake mingw-w64-x86_64-python-setuptools mingw-w64-x86_64-python-pip mingw-w64-x86_64-python-wheel mingw-w64-x86_64-proj
$ pip install pyproj

Environment Information

  • pyproj version you are attempting to install
    3.3.0 and 3.2.1
  • PROJ version (Execute proj command and give version here.)
    Rel. 8.1.1, September 1st, 2021
  • Python version (python -c "import sys; print(sys.version.replace('\n', ' '))")
    3.9.7 (default, Nov 21 2021, 22:02:56) [GCC 11.2.0 64 bit (AMD64)]
  • Operation System Information (python -c "import platform; print(platform.platform())")
    Windows-10-10.0.19042-SP0

My temporary solution was to use the last successful local installs wheel.

@RoDuth RoDuth added the installation-issues Issue related to installation problems. label Dec 22, 2021
@snowman2 snowman2 added the windows Windows related issue label Dec 22, 2021
@RoDuth
Copy link
Author

RoDuth commented Jan 31, 2022

Looking at this again I'm at a bit of a loss as to why pip install pyproj (regardless of version of pyproj, pip, etc. used) stopped working. I can't find anything obvious in MinGW that seems responsible.

What I can add is that in a fresh windows 10 vm with a fresh install of msys2 using MinGW x64 terminal and installing as above (although, after noticing that pyproject.toml contains "cython>=0.28.4" in build-system requires, I have now added pacman -S mingw-w64-x86_64-cython - installs version 0.29.26-1).

with this pip install pyproj produces this error:

Building wheels for collected packages: pyproj
  Building wheel for pyproj (pyproject.toml) ... error
  ERROR: Command errored out with exit status 1:
   command: C:/msys64/mingw64/bin/python.exe C:/msys64/mingw64/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel C:/Users/test/AppData/Local/Temp/tmpfm6b4vcs
       cwd: C:/Users/test/AppData/Local/Temp/pip-install-c7b5s2k4/pyproj_502845de6695480b9a22b34f9466fbff
  Complete output (6 lines):
  running bdist_wheel
  running build
  running build_py
  running build_ext
  building 'pyproj._proj' extension
  error: --plat-name must be one of ('win32', 'win-amd64', 'win-arm32', 'win-arm64')
  ----------------------------------------
  ERROR: Failed building wheel for pyproj
Failed to build pyproj
ERROR: Could not build wheels for pyproj, which is required to install pyproject.toml-based projects

in appveyor it is different, seeming to use 'win-amd64'... Is this because Visual Studio is found? (Doubt this would work in mingw anyway) Fails because of a missing header file.

  Building wheel for pyproj (pyproject.toml): started
  Building wheel for pyproj (pyproject.toml): finished with status 'error'
  ERROR: Command errored out with exit status 1:
   command: C:/msys64/mingw64/bin/python.exe C:/msys64/mingw64/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel C:/Users/appveyor/AppData/Local/Temp/1/tmpasacfwmt
       cwd: C:/Users/appveyor/AppData/Local/Temp/1/pip-install-5a93kwzg/pyproj_9a1786abda5e49c8a2e1aaf53692750b
  Complete output (45 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.win-amd64-3.9
  creating build/lib.win-amd64-3.9/pyproj
  copying pyproj/aoi.py -> build/lib.win-amd64-3.9/pyproj
  copying pyproj/datadir.py -> build/lib.win-amd64-3.9/pyproj
  copying pyproj/enums.py -> build/lib.win-amd64-3.9/pyproj
  copying pyproj/exceptions.py -> build/lib.win-amd64-3.9/pyproj
  copying pyproj/geod.py -> build/lib.win-amd64-3.9/pyproj
  copying pyproj/network.py -> build/lib.win-amd64-3.9/pyproj
  copying pyproj/proj.py -> build/lib.win-amd64-3.9/pyproj
  copying pyproj/sync.py -> build/lib.win-amd64-3.9/pyproj
  copying pyproj/transformer.py -> build/lib.win-amd64-3.9/pyproj
  copying pyproj/utils.py -> build/lib.win-amd64-3.9/pyproj
  copying pyproj/_show_versions.py -> build/lib.win-amd64-3.9/pyproj
  copying pyproj/__init__.py -> build/lib.win-amd64-3.9/pyproj
  copying pyproj/__main__.py -> build/lib.win-amd64-3.9/pyproj
  creating build/lib.win-amd64-3.9/pyproj/crs
  copying pyproj/crs/coordinate_operation.py -> build/lib.win-amd64-3.9/pyproj/crs
  copying pyproj/crs/coordinate_system.py -> build/lib.win-amd64-3.9/pyproj/crs
  copying pyproj/crs/crs.py -> build/lib.win-amd64-3.9/pyproj/crs
  copying pyproj/crs/datum.py -> build/lib.win-amd64-3.9/pyproj/crs
  copying pyproj/crs/enums.py -> build/lib.win-amd64-3.9/pyproj/crs
  copying pyproj/crs/_cf1x8.py -> build/lib.win-amd64-3.9/pyproj/crs
  copying pyproj/crs/__init__.py -> build/lib.win-amd64-3.9/pyproj/crs
  copying pyproj/database.pyi -> build/lib.win-amd64-3.9/pyproj
  copying pyproj/list.pyi -> build/lib.win-amd64-3.9/pyproj
  copying pyproj/_compat.pyi -> build/lib.win-amd64-3.9/pyproj
  copying pyproj/_crs.pyi -> build/lib.win-amd64-3.9/pyproj
  copying pyproj/_datadir.pyi -> build/lib.win-amd64-3.9/pyproj
  copying pyproj/_geod.pyi -> build/lib.win-amd64-3.9/pyproj
  copying pyproj/_network.pyi -> build/lib.win-amd64-3.9/pyproj
  copying pyproj/_sync.pyi -> build/lib.win-amd64-3.9/pyproj
  copying pyproj/_transformer.pyi -> build/lib.win-amd64-3.9/pyproj
  copying pyproj/py.typed -> build/lib.win-amd64-3.9/pyproj
  running build_ext
  creating build/temp.win-amd64-3.9
  creating build/temp.win-amd64-3.9/Release
  creating build/temp.win-amd64-3.9/Release/pyproj
  "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/HostX86/x64/cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include/python3.9 "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\cppwinrt" /Tcpyproj/_geod.c /Fobuild/temp.win-amd64-3.9/Release/pyproj/_geod.obj
  _geod.c
  C:/msys64/mingw64/include/python3.9\Python.h(36): fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory
  error: command 'C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/HostX86/x64/cl.exe' failed with exit code 2
  ----------------------------------------
  ERROR: Failed building wheel for pyproj

I did have success producing and installing a wheel (that appears to be working OK) using a setuptools approach from source:

pacman -S git
git clone https://github.com/pyproj4/pyproj.git
cd pyproj
git checkout 3.3.0
python setup.py bdist_wheel
pip install dist/pyproj-3.3.0-cp39-cp39-mingw_x86_64.whl

Any ideas?

@snowman2
Copy link
Member

snowman2 commented Aug 22, 2022

I wonder if this is related to #1113.

What is the output of os.name and sys.platform?

@RoDuth
Copy link
Author

RoDuth commented Aug 23, 2022

I'd think maybe generally speaking it is?

Although I get:

>>> import os, sys
>>> os.name
'nt'
>>> sys.platform
'win32'

And still get the same --plat-name problem as before so obviously not the same issue.

All this is outside the limits of my knowledge but could this also be related?

pypa/distutils/issues/34

Maybe @lazka could shed some light?

@RoDuth
Copy link
Author

RoDuth commented Aug 24, 2022

Just thought I would try setting the version of setuptools in pyproject.toml. If I set it to "setuptools==59.8.0" (working back from the release around the time I first had the problem) I can get pip to install it:

$ pip install .
Processing c:/msys64/home/rodem/pyproj
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: certifi in c:/msys64/mingw64/lib/python3.10/site-packages (from pyproj==3.3.2.dev0) (2022.6.15)
Building wheels for collected packages: pyproj
  Building wheel for pyproj (pyproject.toml) ... done
  Created wheel for pyproj: filename=pyproj-3.3.2.dev0-cp310-cp310-mingw_x86_64.whl size=454559 sha256=96bf5afa1882e23ef08543203c65acae1b69de8935f1bdf64b511957d2373fe0
  Stored in directory: C:/Users/rodem/AppData/Local/Temp/pip-ephem-wheel-cache-k4easvg5/wheels/32/08/1b/6203a34dce79f449543dc73afcb3a4381e3d19384b45dc8f10
Successfully built pyproj
Installing collected packages: pyproj
  Attempting uninstall: pyproj
    Found existing installation: pyproj 3.3.2.dev0
    Can't uninstall 'pyproj'. No files were found to uninstall.
Successfully installed pyproj-3.3.2.dev0

But can not import it:

$ python
Python 3.10.6 (main, Aug 12 2022, 18:00:29)  [GCC 12.1.0 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyproj
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:/msys64/home/rodem/pyproj/pyproj/__init__.py", line 49, in <module>
    import pyproj.network
  File "C:/msys64/home/rodem/pyproj/pyproj/network.py", line 10, in <module>
    from pyproj._network import (  # noqa: F401 pylint: disable=unused-import
ModuleNotFoundError: No module named 'pyproj._network'

@RoDuth
Copy link
Author

RoDuth commented Aug 24, 2022

Thanks @snowman2 you pointed me in the right direction to finally find a solutions (for now)...

First of all scrap my "can not import" comment above, rookie mistake, didn't change out of the pyproj directory first...

From what I gather: Since setuptools>=60.0.0 setuptools "includes a local, vendored copy of distutils". Therefore the MSYS2 patched version of standard libary distutils is not used unless you make it e.g.:

SETUPTOOLS_USE_DISTUTILS=stdlib pip install pyproj

see: https://setuptools.pypa.io/en/latest/deprecated/distutils-legacy.html

Ideally the MSYS2 patches find their way into setuptools' distutils and SETUPTOOLS_USE_DISTUTILS=stdlib becomes uneeded.

see:
pypa/distutils/issues/34
pypa/distutils/pull/78

@RoDuth RoDuth closed this as completed Aug 24, 2022
RoDuth added a commit to RoDuth/ghini.desktop that referenced this issue Aug 26, 2022
@wsgalaxy
Copy link

wsgalaxy commented Sep 1, 2022

Thanks @snowman2 you pointed me in the right direction to finally find a solutions (for now)...

First of all scrap my "can not import" comment above, rookie mistake, didn't change out of the pyproj directory first...

From what I gather: Since setuptools>=60.0.0 setuptools "includes a local, vendored copy of distutils". Therefore the MSYS2 patched version of standard libary distutils is not used unless you make it e.g.:

SETUPTOOLS_USE_DISTUTILS=stdlib pip install pyproj

see: https://setuptools.pypa.io/en/latest/deprecated/distutils-legacy.html

Ideally the MSYS2 patches find their way into setuptools' distutils and SETUPTOOLS_USE_DISTUTILS=stdlib becomes uneeded.

see: pypa/distutils/issues/34 pypa/distutils/pull/78

This solves my problem, thanks!

@Gabogogi
Copy link

Gabogogi commented Jan 9, 2024

Great thread! I had issues with SQLAlchemy but now I am sorted

@MAjeRoK
Copy link

MAjeRoK commented Mar 19, 2024

For Windows before installing the desired package set the variable in PowerShell by this command:

$env:SETUPTOOLS_USE_DISTUTILS="stdlib"

It helped me make pip work with MSYS2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted installation-issues Issue related to installation problems. windows Windows related issue
Projects
None yet
Development

No branches or pull requests

5 participants