pip install --upgrade torch-scatter
Collecting torch-scatter
Using cached https://files.pythonhosted.org/packages/d4/83/67eeea00c2db1959e2ff95d8680dbd756977bfab254bda8658f09dc3bc11/torch_scatter-1.1.2.tar.gz
Building wheels for collected packages: torch-scatter
Building wheel for torch-scatter (setup.py) ... error
Complete output from command d:\anconda\envs\py36\python.exe -u -c "import setuptools, tokenize;__file__='C:\Users\Admin\AppData\Local\Temp\pip-install-gn20erak\torch-scatter\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d C:\Users\Admin\AppData\Local\Temp\pip-wheel-hurdtuzn --python-tag cp36:
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-3.6
creating build\lib.win-amd64-3.6\test
copying test\test_backward.py -> build\lib.win-amd64-3.6\test
copying test\test_forward.py -> build\lib.win-amd64-3.6\test
copying test\test_multi_gpu.py -> build\lib.win-amd64-3.6\test
copying test\test_std.py -> build\lib.win-amd64-3.6\test
copying test\utils.py -> build\lib.win-amd64-3.6\test
copying test__init__.py -> build\lib.win-amd64-3.6\test
creating build\lib.win-amd64-3.6\torch_scatter
copying torch_scatter\add.py -> build\lib.win-amd64-3.6\torch_scatter
copying torch_scatter\div.py -> build\lib.win-amd64-3.6\torch_scatter
copying torch_scatter\max.py -> build\lib.win-amd64-3.6\torch_scatter
copying torch_scatter\mean.py -> build\lib.win-amd64-3.6\torch_scatter
copying torch_scatter\min.py -> build\lib.win-amd64-3.6\torch_scatter
copying torch_scatter\mul.py -> build\lib.win-amd64-3.6\torch_scatter
copying torch_scatter\std.py -> build\lib.win-amd64-3.6\torch_scatter
copying torch_scatter\sub.py -> build\lib.win-amd64-3.6\torch_scatter
copying torch_scatter__init__.py -> build\lib.win-amd64-3.6\torch_scatter
creating build\lib.win-amd64-3.6\torch_scatter\utils
copying torch_scatter\utils\ext.py -> build\lib.win-amd64-3.6\torch_scatter\utils
copying torch_scatter\utils\gen.py -> build\lib.win-amd64-3.6\torch_scatter\utils
copying torch_scatter\utils__init__.py -> build\lib.win-amd64-3.6\torch_scatter\utils
running build_ext
d:\anconda\envs\py36\lib\site-packages\torch\utils\cpp_extension.py:184: UserWarning: Error checking compiler version for cl: 'utf-8' codec can't decode byte 0xd3 in position 0: invalid continuation byte
warnings.warn('Error checking compiler version for {}: {}'.format(compiler, error))
building 'torch_scatter.scatter_cpu' extension
creating build\temp.win-amd64-3.6
creating build\temp.win-amd64-3.6\Release
creating build\temp.win-amd64-3.6\Release\cpu
D:\vs2015\VC\bin\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Id:\anconda\envs\py36\lib\site-packages\torch\lib\include -Id:\anconda\envs\py36\lib\site-packages\torch\lib\include\torch\csrc\api\include -Id:\anconda\envs\py36\lib\site-packages\torch\lib\include\TH -Id:\anconda\envs\py36\lib\site-packages\torch\lib\include\THC -Id:\anconda\envs\py36\include -Id:\anconda\envs\py36\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include" "-IC:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt" /EHsc /Tpcpu/scatter.cpp /Fobuild\temp.win-amd64-3.6\Release\cpu/scatter.obj -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=scatter_cpu -D_GLIBCXX_USE_CXX11_ABI=0
scatter.cpp
d:\anconda\envs\py36\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/cuda.h(5): fatal error C1083: Unable to open include file: “cstddef”: No such file or directory
error: command 'D:\vs2015\VC\bin\cl.exe' failed with exit status 2
Failed building wheel for torch-scatter
Running setup.py clean for torch-scatter
Failed to build torch-scatter
Installing collected packages: torch-scatter
Running setup.py install for torch-scatter ... error
Complete output from command d:\anconda\envs\py36\python.exe -u -c "import setuptools, tokenize;__file__='C:\Users\Admin\AppData\Local\Temp\pip-install-gn20erak\torch-scatter\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\Admin\AppData\Local\Temp\pip-record-_na9gbcd\install-record.txt --single-version-externally-managed --compile:
running install
running build
running build_py
creating build
creating build\lib.win-amd64-3.6
creating build\lib.win-amd64-3.6\test
copying test\test_backward.py -> build\lib.win-amd64-3.6\test
copying test\test_forward.py -> build\lib.win-amd64-3.6\test
copying test\test_multi_gpu.py -> build\lib.win-amd64-3.6\test
copying test\test_std.py -> build\lib.win-amd64-3.6\test
copying test\utils.py -> build\lib.win-amd64-3.6\test
copying test__init__.py -> build\lib.win-amd64-3.6\test
creating build\lib.win-amd64-3.6\torch_scatter
copying torch_scatter\add.py -> build\lib.win-amd64-3.6\torch_scatter
copying torch_scatter\div.py -> build\lib.win-amd64-3.6\torch_scatter
copying torch_scatter\max.py -> build\lib.win-amd64-3.6\torch_scatter
copying torch_scatter\mean.py -> build\lib.win-amd64-3.6\torch_scatter
copying torch_scatter\min.py -> build\lib.win-amd64-3.6\torch_scatter
copying torch_scatter\mul.py -> build\lib.win-amd64-3.6\torch_scatter
copying torch_scatter\std.py -> build\lib.win-amd64-3.6\torch_scatter
copying torch_scatter\sub.py -> build\lib.win-amd64-3.6\torch_scatter
copying torch_scatter__init__.py -> build\lib.win-amd64-3.6\torch_scatter
creating build\lib.win-amd64-3.6\torch_scatter\utils
copying torch_scatter\utils\ext.py -> build\lib.win-amd64-3.6\torch_scatter\utils
copying torch_scatter\utils\gen.py -> build\lib.win-amd64-3.6\torch_scatter\utils
copying torch_scatter\utils__init__.py -> build\lib.win-amd64-3.6\torch_scatter\utils
running build_ext
d:\anconda\envs\py36\lib\site-packages\torch\utils\cpp_extension.py:184: UserWarning: Error checking compiler version for cl: 'utf-8' codec can't decode byte 0xd3 in position 0: invalid continuation byte
warnings.warn('Error checking compiler version for {}: {}'.format(compiler, error))
building 'torch_scatter.scatter_cpu' extension
creating build\temp.win-amd64-3.6
creating build\temp.win-amd64-3.6\Release
creating build\temp.win-amd64-3.6\Release\cpu
D:\vs2015\VC\bin\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Id:\anconda\envs\py36\lib\site-packages\torch\lib\include -Id:\anconda\envs\py36\lib\site-packages\torch\lib\include\torch\csrc\api\include -Id:\anconda\envs\py36\lib\site-packages\torch\lib\include\TH -Id:\anconda\envs\py36\lib\site-packages\torch\lib\include\THC -Id:\anconda\envs\py36\include -Id:\anconda\envs\py36\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include" "-IC:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt" /EHsc /Tpcpu/scatter.cpp /Fobuild\temp.win-amd64-3.6\Release\cpu/scatter.obj -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=scatter_cpu -D_GLIBCXX_USE_CXX11_ABI=0
scatter.cpp
d:\anconda\envs\py36\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/cuda.h(5): fatal error C1083: Unable to open include file: “cstddef”: No such file or directory
error: command 'D:\vs2015\VC\bin\cl.exe' failed with exit status 2
----------------------------------------
Command "d:\anconda\envs\py36\python.exe -u -c "import setuptools, tokenize;__file__='C:\Users\Admin\AppData\Local\Temp\pip-install-gn20erak\torch-scatter\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\Admin\AppData\Local\Temp\pip-record-_na9gbcd\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\Admin\AppData\Local\Temp\pip-install-gn20erak\torch-scatter\
Sadly, I am not much of a help regarding installation problems on Windows. However, we do have some closed issues here regarding Windows installation, I wrote an installation FAQ which you can find in the documentation und you check if the official extension from PyTorch works on your machine.
Torch-scatter can be compiled with VS2017 (not VS2015)
I'm not able to do so on my system. Can you provide detailed instructions please? Getting a bunch of compile errors:
running install
running bdist_egg
running egg_info
writing torch_scatter.egg-info\PKG-INFO
writing dependency_links to torch_scatter.egg-info\dependency_links.txt
writing top-level names to torch_scatter.egg-info\top_level.txt
reading manifest file 'torch_scatter.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'torch_scatter.egg-info\SOURCES.txt'
installing library code to build\bdist.win-amd64\egg
running install_lib
running build_py
running build_ext
building 'torch_scatter.scatter_cpu' extension
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VCTools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:Anaconda3\lib\site-packages\torch\include -IC:Anaconda3\lib\site-packages\torch\include\torch\csrc\api\include -IC:Anaconda3\lib\site-packages\torch\includeTH -IC:Anaconda3\lib\site-packages\torch\includeTHC -IC:Anaconda3\include -IC:Anaconda3\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VCTools\MSVC\14.16.27023ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VCTools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VCTools\MSVC\14.16.27023ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VCTools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /EHsc /Tpcpu/scatter.cpp /Fobuild\temp.win-amd64-3.7\Release\cpu/scatter.obj /MD /Z7 /EHa /DNOMINMAX /wd4267 /wd4251 /wd4522 /wd4522 /wd4838 /wd4305 /wd4244 /wd4190 /wd4101 /wd4996 /wd4275 -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=scatter_cpu /MD
cl : Command line warning D9025 : overriding '/EHs' with '/EHa'
scatter.cpp
C:Anaconda3\lib\site-packages\torch\include\c10/core/TensorTypeId.h(38): warning C4273: 'c10::toString': inconsistent dll linkage
C:Anaconda3\lib\site-packages\torch\include\c10/core/TensorTypeId.h(35): note: see previous definition of 'toString'
C:Anaconda3\lib\site-packages\torch\include\torch/csrc/jit/tracer.h(137): warning C4273: 'torch::jit::tracer::addInputs': inconsistent dll linkage
C:Anaconda3\lib\site-packages\torch\include\torch/csrc/jit/tracer.h(122): note: see previous definition of 'addInputs'
C:Anaconda3\lib\site-packages\torch\include\torch/csrc/jit/tracer.h(144): warning C4273: 'torch::jit::tracer::addInputs': inconsistent dll linkage
C:Anaconda3\lib\site-packages\torch\include\torch/csrc/jit/tracer.h(128): note: see previous definition of 'addInputs'
cpu/scatter.cpp(15): error C2450: switch expression of type 'at::Type' is illegal
cpu/scatter.cpp(15): note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
cpu/scatter.cpp(8): error C3861: 'toString': identifier not found
cpu/scatter.cpp(8): error C2440: '
cpu/scatter.cpp(15): note: No constructor could take the source type, or constructor overload resolution was ambiguous
cpu/scatter.cpp(28): error C2450: switch expression of type 'at::Type' is illegal
cpu/scatter.cpp(28): note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
cpu/scatter.cpp(21): error C3861: 'toString': identifier not found
cpu/scatter.cpp(21): error C2440: '
cpu/scatter.cpp(28): note: No constructor could take the source type, or constructor overload resolution was ambiguous
cpu/scatter.cpp(45): error C2450: switch expression of type 'at::Type' is illegal
cpu/scatter.cpp(45): note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
cpu/scatter.cpp(34): error C3861: 'toString': identifier not found
cpu/scatter.cpp(34): error C2440: '
cpu/scatter.cpp(45): note: No constructor could take the source type, or constructor overload resolution was ambiguous
cpu/scatter.cpp(62): error C2450: switch expression of type 'at::Type' is illegal
cpu/scatter.cpp(62): note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
cpu/scatter.cpp(51): error C3861: 'toString': identifier not found
cpu/scatter.cpp(51): error C2440: '
cpu/scatter.cpp(62): note: No constructor could take the source type, or constructor overload resolution was ambiguous
cpu/scatter.cpp(78): error C2450: switch expression of type 'at::Type' is illegal
cpu/scatter.cpp(78): note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
cpu/scatter.cpp(68): error C3861: 'toString': identifier not found
cpu/scatter.cpp(68): error C2440: '
cpu/scatter.cpp(78): note: No constructor could take the source type, or constructor overload resolution was ambiguous
error: command 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe' failed with exit status 2
My current setup:
Pytroch version: 1.0.1
Torch-scatter: 1.1.1
Please provide details on exactly how you compiled pytorch-scatter from source on windows, not just your current set up. Print out of the setup.py would be helpful
Can you install the extension example? If not, you can additionally ask for help there. Those guys should know much better what may cause this issue.
python setup.py build
~~~~ multiple warninigs like below:
c:/users/${users}/Appdata/Local/Programs/Python/Python36/lib/site-packages/torch/li
b/includeATen/TensorGeometry.h(57): warning: field of class type without a DLL
interface used in a class with a DLL interface
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VCTools\MSVC\14.1
6.27023\bin\HostX86\x64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EM
BED,ID=2 /MANIFESTUAC:NO /LIBPATH:c:\users\${users}Appdata\Local\Programs\Python\P
ython36\lib\site-packages\torch\lib "/LIBPATH:C:\Program Files\NVIDIA GPU Comput
ing Toolkit\CUDA\v10.1\lib/x64" /LIBPATH:c:\users\${users}Appdata\Local\Programs\P
ython\Python36\libs /LIBPATH:c:\users\${users}Appdata\Local\Programs\Python\Python
36\PCbuild\amd64 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2017\C
ommunity\VCTools\MSVC\14.16.27023ATLMFC\lib\x64" "/LIBPATH:C:\Program Files (x
86)\Microsoft Visual Studio\2017\Community\VCTools\MSVC\14.16.27023\lib\x64" "/
LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\lib\um\x64" "/LIBPATH
:C:\Program Files (x86)\Windows Kits\10\lib\10.0.17763.0\ucrt\x64" "/LIBPATH:C:\
Program Files (x86)\Windows Kits\10\lib\10.0.17763.0\um\x64" cudart.lib c10.lib
caffe2.lib torch.lib torch_python.lib caffe2_gpu.lib _C.lib /EXPORT:PyInit_scatt
er_cuda build\temp.win-amd64-3.6\Release\cuda/scatter.obj build\temp.win-amd64-3
.6\Release\cuda/scatter_kernel.obj /OUT:build\lib.win-amd64-3.6\torch_scatter\sc
atter_cuda.cp36-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.6\Release\cuda\scat
ter_cuda.cp36-win_amd64.lib
Creating library build\temp.win-amd64-3.6\Release\cuda\scatter_cuda.cp36-win_
amd64.lib and object build\temp.win-amd64-3.6\Release\cuda\scatter_cuda.cp36-win
_amd64.exp
Generating code
Finished generating code
@rusty1s,
yes I'm able to build the cpp extension. I had to remove the following line from torch.h, but otherwise it worked
#warning \
"Including torch/torch.h for C++ extensions is deprecated. Please include torch/extension.h"
This is because the warning syntax for MSVC compilers is different. However I get different errors when I compile scatter_cpu
cpu/scatter.cpp(15): error C2450: switch expression of type 'at::Type' is illegal
cpu/scatter.cpp(15): note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
cpu/scatter.cpp(8): error C3861: 'toString': identifier not found
cpu/scatter.cpp(8): error C2440: '
cpu/scatter.cpp(15): note: No constructor could take the source type, or constructor overload resolution was ambiguous
cpu/scatter.cpp(28): error C2450: switch expression of type 'at::Type' is illegal
cpu/scatter.cpp(28): note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
etc.. I have no idea how it is working for neon5d
@rusty1s,
can you please try building on windows to see if it is working for you? I'm a bit hesitant to post on the cppextension repo for an build issue with this repo. You have done some really nice work with pytorch geometric, it will be unfortunate not to be able to use it for this stupid build issue.
I do not have a Windows machine, but im 100% sure that installation works on Windows. This seems to be a weird bug with AT_DISPATCH_ALL_TYPES. Can you try to replace the calls in cpu/scatter.cpp with either
AT_DISPATCH_ALL_TYPES(x.dtype(), "xxx", [&] {
or
AT_DISPATCH_ALL_TYPES(x.scalar_type(), "xxx", [&] {
like here and see if this fixes the issue?
Edit: This seems to be the issue. The argument type recently changed in PyTorch master (see, e.g., here).
AT_DISPATCH_ALL_TYPES(x.scalar_type(), "xxx", [&] {
worked, thanks.
AT_DISPATCH_ALL_TYPES(x.dtype(), "xxx", [&] {
this one didn't.
The other two libs - cluster and sparse also need the same change. Best to update the code in master?
Cool! I will check if this change works on PyTorch stable and update in master.
Does not work on PyTorch 1.0.0. I need to wait before changing this in master. I leave this issue open as a reminder.
Torch-scatter can be compiled with VS2017 (not VS2015)
thanks,I will try it.
Fixed in master.
Most helpful comment
Torch-scatter can be compiled with VS2017 (not VS2015)