Layout-Parser / layout-parser

A Unified Toolkit for Deep Learning Based Document Image Analysis
https://layout-parser.github.io/
Apache License 2.0
4.78k stars 459 forks source link

Installation on Windows #11

Closed simon-lowe closed 3 years ago

simon-lowe commented 3 years ago

Hello,

There are some tricky problems when trying to install this on Windows 10. When running the pip install command:

Collecting layoutparser Using cached layoutparser-0.1.3-py3-none-any.whl (19.1 MB) Requirement already satisfied: pyyaml>=5.1 in c:\programdata\anaconda3\lib\site-packages (from layoutparser) (5.4.1) Requirement already satisfied: torch in c:\programdata\anaconda3\lib\site-packages (from layoutparser) (1.8.0) Collecting fvcore==0.1.1.post20200623 Using cached fvcore-0.1.1.post20200623-py3-none-any.whl Requirement already satisfied: pandas in c:\programdata\anaconda3\lib\site-packages (from layoutparser) (1.2.3) Collecting opencv-python Using cached opencv_python-4.5.1.48-cp38-cp38-win_amd64.whl (34.9 MB) Requirement already satisfied: numpy in c:\programdata\anaconda3\lib\site-packages (from layoutparser) (1.19.2) Requirement already satisfied: torchvision in c:\programdata\anaconda3\lib\site-packages (from layoutparser) (0.9.0) Collecting pycocotools==2.0.1 Using cached pycocotools-2.0.1.tar.gz (23 kB) Requirement already satisfied: pillow in c:\programdata\anaconda3\lib\site-packages (from layoutparser) (8.1.2) Requirement already satisfied: tabulate in c:\programdata\anaconda3\lib\site-packages (from fvcore==0.1.1.post20200623->layoutparser) (0.8.9) Requirement already satisfied: portalocker in c:\programdata\anaconda3\lib\site-packages (from fvcore==0.1.1.post20200623->layoutparser) (2.2.1) Requirement already satisfied: yacs>=0.1.6 in c:\programdata\anaconda3\lib\site-packages (from fvcore==0.1.1.post20200623->layoutparser) (0.1.8) Requirement already satisfied: tqdm in c:\programdata\anaconda3\lib\site-packages (from fvcore==0.1.1.post20200623->layoutparser) (4.59.0) Requirement already satisfied: termcolor>=1.1 in c:\programdata\anaconda3\lib\site-packages (from fvcore==0.1.1.post20200623->layoutparser) (1.1.0) Requirement already satisfied: setuptools>=18.0 in c:\programdata\anaconda3\lib\site-packages (from pycocotools==2.0.1->layoutparser) (52.0.0.post20210125) Requirement already satisfied: cython>=0.27.3 in c:\programdata\anaconda3\lib\site-packages (from pycocotools==2.0.1->layoutparser) (0.29.22) Requirement already satisfied: matplotlib>=2.1.0 in c:\programdata\anaconda3\lib\site-packages (from pycocotools==2.0.1->layoutparser) (3.3.4) Requirement already satisfied: cycler>=0.10 in c:\programdata\anaconda3\lib\site-packages (from matplotlib>=2.1.0->pycocotools==2.0.1->layoutparser) (0.10.0) Requirement already satisfied: python-dateutil>=2.1 in c:\programdata\anaconda3\lib\site-packages (from matplotlib>=2.1.0->pycocotools==2.0.1->layoutparser) (2.8.1) Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.3 in c:\programdata\anaconda3\lib\site-packages (from matplotlib>=2.1.0->pycocotools==2.0.1->layoutparser) (2.4.7) Requirement already satisfied: kiwisolver>=1.0.1 in c:\programdata\anaconda3\lib\site-packages (from matplotlib>=2.1.0->pycocotools==2.0.1->layoutparser) (1.3.1) Requirement already satisfied: six in c:\programdata\anaconda3\lib\site-packages (from cycler>=0.10->matplotlib>=2.1.0->pycocotools==2.0.1->layoutparser) (1.15.0) Requirement already satisfied: pytz>=2017.3 in c:\programdata\anaconda3\lib\site-packages (from pandas->layoutparser) (2021.1) Requirement already satisfied: pywin32!=226 in c:\programdata\anaconda3\lib\site-packages (from portalocker->fvcore==0.1.1.post20200623->layoutparser) (227) Requirement already satisfied: typing-extensions in c:\programdata\anaconda3\lib\site-packages (from torch->layoutparser) (3.7.4.3) Building wheels for collected packages: pycocotools Building wheel for pycocotools (setup.py) ... error ERROR: Command errored out with exit status 1: command: 'C:\ProgramData\Anaconda3\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\simon\AppData\Local\Temp\pip-install-89f1380y\pycocotools_f23f85d993154668b0597a2f67daedc9\setup.py'"'"'; file='"'"'C:\Users\simon\AppData\Local\Temp\pip-install-89f1380y\pycocotools_f23f85d993154668b0597a2f67daedc9\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\simon\AppData\Local\Temp\pip-wheel-uyclbppl' cwd: C:\Users\simon\AppData\Local\Temp\pip-install-89f1380y\pycocotools_f23f85d993154668b0597a2f67daedc9\ Complete output (22 lines): running bdist_wheel running build running build_py creating build creating build\lib.win-amd64-3.8 creating build\lib.win-amd64-3.8\pycocotools copying pycocotools\coco.py -> build\lib.win-amd64-3.8\pycocotools copying pycocotools\cocoeval.py -> build\lib.win-amd64-3.8\pycocotools copying pycocotools\mask.py -> build\lib.win-amd64-3.8\pycocotools copying pycocotools__init__.py -> build\lib.win-amd64-3.8\pycocotools running build_ext cythoning pycocotools/_mask.pyx to pycocotools_mask.c C:\ProgramData\Anaconda3\lib\site-packages\Cython\Compiler\Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: C:\Users\simon\AppData\Local\Temp\pip-install-89f1380y\pycocotools_f23f85d993154668b0597a2f67daedc9\pycocotools_mask.pyx tree = Parsing.p_module(s, pxd, full_module_name) building 'pycocotools._mask' extension creating build\temp.win-amd64-3.8 creating build\temp.win-amd64-3.8\Release creating build\temp.win-amd64-3.8\Release\common creating build\temp.win-amd64-3.8\Release\pycocotools C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.28.29910\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\ProgramData\Anaconda3\lib\site-packages\numpy\core\include -I./common -IC:\ProgramData\Anaconda3\include -IC:\ProgramData\Anaconda3\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.28.29910\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt" /Tc./common/maskApi.c /Fobuild\temp.win-amd64-3.8\Release./common/maskApi.obj -Wno-cpp -Wno-unused-function -std=c99 cl : Command line error D8021 : invalid numeric argument '/Wno-cpp' error: command 'C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.28.29910\bin\HostX86\x64\cl.exe' failed with exit status 2

ERROR: Failed building wheel for pycocotools Running setup.py clean for pycocotools Failed to build pycocotools Installing collected packages: pycocotools, opencv-python, fvcore, layoutparser Attempting uninstall: pycocotools Found existing installation: pycocotools 2.0 Uninstalling pycocotools-2.0: Successfully uninstalled pycocotools-2.0 Running setup.py install for pycocotools ... error ERROR: Command errored out with exit status 1: command: 'C:\ProgramData\Anaconda3\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\simon\AppData\Local\Temp\pip-install-89f1380y\pycocotools_f23f85d993154668b0597a2f67daedc9\setup.py'"'"'; file='"'"'C:\Users\simon\AppData\Local\Temp\pip-install-89f1380y\pycocotoolsf23f85d993154668b0597a2f67daedc9\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\simon\AppData\Local\Temp\pip-record-9im9zem\install-record.txt' --single-version-externally-managed --compile --install-headers 'C:\ProgramData\Anaconda3\Include\pycocotools' cwd: C:\Users\simon\AppData\Local\Temp\pip-install-89f1380y\pycocotools_f23f85d993154668b0597a2f67daedc9\ Complete output (20 lines): running install running build running build_py creating build creating build\lib.win-amd64-3.8 creating build\lib.win-amd64-3.8\pycocotools copying pycocotools\coco.py -> build\lib.win-amd64-3.8\pycocotools copying pycocotools\cocoeval.py -> build\lib.win-amd64-3.8\pycocotools copying pycocotools\mask.py -> build\lib.win-amd64-3.8\pycocotools copying pycocotools__init__.py -> build\lib.win-amd64-3.8\pycocotools running build_ext skipping 'pycocotools_mask.c' Cython extension (up-to-date) building 'pycocotools._mask' extension creating build\temp.win-amd64-3.8 creating build\temp.win-amd64-3.8\Release creating build\temp.win-amd64-3.8\Release\common creating build\temp.win-amd64-3.8\Release\pycocotools C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.28.29910\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\ProgramData\Anaconda3\lib\site-packages\numpy\core\include -I./common -IC:\ProgramData\Anaconda3\include -IC:\ProgramData\Anaconda3\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.28.29910\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt" /Tc./common/maskApi.c /Fobuild\temp.win-amd64-3.8\Release./common/maskApi.obj -Wno-cpp -Wno-unused-function -std=c99 cl : Command line error D8021 : invalid numeric argument '/Wno-cpp' error: command 'C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.28.29910\bin\HostX86\x64\cl.exe' failed with exit status 2

Rolling back uninstall of pycocotools Moving to c:\programdata\anaconda3\lib\site-packages\pycocotools-2.0.dist-info\ from C:\ProgramData\Anaconda3\Lib\site-packages\~ycocotools-2.0.dist-info Moving to c:\programdata\anaconda3\lib\site-packages\pycocotools\ from C:\ProgramData\Anaconda3\Lib\site-packages\~ycocotools ERROR: Command errored out with exit status 1: 'C:\ProgramData\Anaconda3\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\simon\AppData\Local\Temp\pip-install-89f1380y\pycocotools_f23f85d993154668b0597a2f67daedc9\setup.py'"'"'; file='"'"'C:\Users\simon\AppData\Local\Temp\pip-install-89f1380y\pycocotoolsf23f85d993154668b0597a2f67daedc9\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\simon\AppData\Local\Temp\pip-record-9im9zem\install-record.txt' --single-version-externally-managed --compile --install-headers 'C:\ProgramData\Anaconda3\Include\pycocotools' Check the logs for full command output.

So apparently it is a known issue with pycocotools and installation on Windows. There is a workaround for this here: https://github.com/cocodataset/cocoapi/issues/169 which indeed enables me to install pycocotools. But when I then run the pip install layoutparser command again, it doesn't work again, giving the same error. It seems to do that because it wants to re-install pycoco?

Thanks for your help on this.

lolipopshock commented 3 years ago

It should be fixed in the latest commit. However, as it hasn't been pushed to pypi, you might want to install via pip install "git+https://github.com/layout-parser/layout-parser.git#egg=layoutparser".

simon-lowe commented 3 years ago

That worked! Amazing, thanks a lot!