[PYTHON] Wenn Sie beim Erstellen von Pycocoapi unter Windows nicht weiterkommen

Beachten Sie, dass ich beim Versuch, "py install pycocoapi" normalerweise unter Windows auszuführen, nicht weiterkam.

(Der folgende Inhalt befasst sich hauptsächlich mit der Fehlerbehebung + α unter https://github.com/cocodataset/cocoapi/issues/51. [Andere Artikel] unter Qiita (https://qiita.com/kekekekenta/items/ca9d5d1f197c373656ec) ), Aber ich habe verschiedene Dinge hinzugefügt, weil das Compiler-Flag nicht genug war und der Build Moos war.)

Grundsätzlich mit Git klonen und bauen

Wenn git überhaupt nicht enthalten ist, git für Windows.

git clone https://github.com/cocodataset/cocoapi.git

Also versuche ich definitiv Moos zu bauen.

cd cocoapi\PythonAPI
python setup.py build_ext install

#Verschiedene Fehlermeldungen unten

Beheben Sie daher von nun an die Fehlerbehebung gemäß dem Inhalt der Fehlermeldung.

1. Fehlende cl.exe

Wenn Sie eine Fehlermeldung wie "error: command'cl.exe" erhalten: fehlgeschlagen: Keine solche Datei oder kein solches Verzeichnis ", befindet sich cl.exe nicht in Ihrem PATH.

Die einfachste Lösung besteht darin, Visual Studio zu installieren und die ** Developer Command Prompt ** zu verwenden. (Da es verschiedene Artikel zur Installation gibt, siehe dort.)

Übrigens gibt es verschiedene Arten von Eingabeaufforderungen für Entwickler, aber dieses Mal werde ich die Eingabeaufforderung ** x64 Native Tools ** verwenden.

Installieren Sie zum Starten Visual Studio und geben Sie "x64 Native" in die Suchleiste ein.

SnapCrab_NoName_2020-3-30_12-36-21_No-00.png

2. Wno-cpp kann nicht verwendet werden

Starten Sie jetzt die x64 Native Tools-Eingabeaufforderung für VS2017 und

cd cocoapi\PythonAPI #Pfad geklonte Cocoapi mit Git
python setup.py build_ext install

Wenn ich laufe, erhalte ich eine Fehlermeldung wie "ungültiges numerisches Argument" / Wno-cpp ". (Übrigens, wenn Sie die Fehlermeldung erhalten, dass Python vorher nicht existiert, befindet sich Pythons PATH nicht in Ihrem Pfad.)

Leeren Sie also "extra_compile_args" um die 14. Zeile von "cocoapi \ PythonAPI \ setup.py" wie folgt.

extra_compile_args=[],
#extra_compile_args=['-Wno-cpp', '-Wno-unused-function', '-std=c99'],

Versuchen Sie es nach dem Umschreiben erneut.

3. Fehlende math.h, fehlende basetsd.h usw.

Dieses Mal wird gesagt, dass nicht genügend Header-Dateien vorhanden sind. Schreiben Sie daher "include_dirs" in "cocoapi \ PythonAPI \ setup.py" wie folgt um.

include_dirs = [np.get_include(), '../common', 'C:/Program Files (x86)/Windows Kits/10/Include/10.0.17763.0/ucrt', 'C:/Program Files (x86)/Windows Kits/10/Include/10.0.17763.0/winrt','C:/Program Files (x86)/Windows Kits/10/Include/10.0.17763.0/um','C:/Program Files (x86)/Windows Kits/10/Include/10.0.17763.0/shared'],
#include_dirs = [np.get_include(), '../common'],

4. Fehlende kernel32.lib

Nachdem das Linker-Flag fehlt, ** fügen Sie Folgendes in die Zeile nach "include_dirs" ** ein.

library_dirs = ['C:/Program Files (x86)/Windows Kits/10/Lib/10.0.17763.0/um/x64','C:/Program Files (x86)/Windows Kits/10/Lib/10.0.17763.0/ucrt/x64'],

Übrigens sieht die endgültige setup.py so aus.

from setuptools import setup, Extension
import numpy as np

# To compile and install locally run "python setup.py build_ext --inplace"
# To install library to Python site-packages run "python setup.py build_ext install"

ext_modules = [
    Extension(
        'pycocotools._mask',
        sources=['../common/maskApi.c', 'pycocotools/_mask.pyx'],
        include_dirs = [np.get_include(), '../common', 'C:/Program Files (x86)/Windows Kits/10/Include/10.0.17763.0/ucrt', 'C:/Program Files (x86)/Windows Kits/10/Include/10.0.17763.0/winrt','C:/Program Files (x86)/Windows Kits/10/Include/10.0.17763.0/um','C:/Program Files (x86)/Windows Kits/10/Include/10.0.17763.0/shared'],
        library_dirs = ['C:/Program Files (x86)/Windows Kits/10/Lib/10.0.17763.0/um/x64','C:/Program Files (x86)/Windows Kits/10/Lib/10.0.17763.0/ucrt/x64'],
        extra_compile_args=[],
    )
]

setup(
    name='pycocotools',
    packages=['pycocotools'],
    package_dir = {'pycocotools': 'pycocotools'},
    install_requires=[
        'setuptools>=18.0',
        'cython>=0.27.3',
        'matplotlib>=2.1.0'
    ],
    version='2.0',
    ext_modules= ext_modules
)

5. Fehlende rc.exe

Dies ist das letzte Fort. Fügen Sie Ihrem PATH C: \ Programme (x86) \ Windows Kits \ 10 \ bin \ x64 hinzu, öffnen Sie die Eingabeaufforderung für x64 Native Tools erneut und führen Sie denselben Befehl aus.

(Wenn Sie diesen Ordner nicht zu Ihrem PATH hinzufügen möchten, kopieren Sie einfach die Dateien "rc.exe" und "rcdll.dll" und legen Sie sie in einem Ordner in Ihrem PATH ab.)

6. Schließlich wird der Build bestanden

Ah, es war ein langer Weg. Mit dem folgenden Befehl können Sie überprüfen, ob es ordnungsgemäß installiert ist.

python
>>> from pycocotools.coco import COCO
>>> 

OK, wenn kein Fehler auftritt.

Recommended Posts

Wenn Sie beim Erstellen von Pycocoapi unter Windows nicht weiterkommen
Wenn Sie nicht weiterkommen, können Sie mkl_intel_thread.dll in Python unter Windows nicht laden
Was tun, wenn Sie während der Anaconda-Installation unter Linux nicht weiterkommen?
Wenn Sie süchtig nach Pip sind, installieren Sie dlib unter OSX
Lösung, wenn Heroku bei Verwendung von Selen abstürzt
Was tun, wenn bei Verwendung von ts-node-dev unter Linux der Fehler "ERR_FEATURE_UNAVAILABLE_ON_PLATFORM" angezeigt wird?
Lösung, wenn Django Projekt starten ist unter Windows nicht möglich
Checkpoint, wenn der LINE Parrot Return Bot von Heroku abhängig ist
Wenn ich eine Fehlermeldung mit Pylint unter Windows Atom erhalte
Wenn Sie sich über "zu wenige Updates ~" ärgern, wenn Sie LdaModel ausführen
Was tun, wenn Sie wütend werden, wenn Sie bei der Installation von lxml unter CentOS nicht über libxml / xmlversion.h verfügen?
Was tun, wenn bei der Installation von CentOS auf VirtualBox die Meldung "Die Sitzung konnte nicht geöffnet werden" angezeigt wird
Was tun, wenn beim Versuch, auf den Git-Hub zuzugreifen, der Fehler "Berechtigung verweigert" (öffentlicher Schlüssel) angezeigt wird?
Wenn Sie NumPy, Pandas, Matplotlib, IPython, SciPy unter Windows verwenden möchten
Was tun, wenn beim Laden von mnist eine Fehlermeldung angezeigt wird?
Wrapper, wenn Sie utf-8 + ansi color in der Windows-Konsole ausgeben möchten
Wenn Sie über den Schnellstart von uWSGI stolpern
Erstellen einer Umgebung für "Tello_Video" unter Windows
Problemumgehung, wenn beim Versuch, PySide mit pip zu installieren, eine Fehlermeldung angezeigt wird
Was tun, wenn bei der Installation von Python mit pyenv eine Fehlermeldung angezeigt wird?
Wenn beim Tippen einer interaktiven Shell mit Anaconda eine lange Fehlermeldung angezeigt wird
Was tun, wenn bei der Installation von openCV 3 der Fehler "Fehler: opencv3: Unterstützt nicht das Erstellen von Python 2- und 3-Wrappern" angezeigt wird
[Python] [vscode] Wenn Sie sich über Space-Tab-Mix ärgern
Beseitigt SSL-Fehler bei der PIP-Installation unter Windows.
Wenn Sie sich mit HTTP-Weiterleitungen 301 und 302 verlaufen
Was tun, wenn bei der Installation von Python 2 mit pyenv ein OpenSSL-Fehler auftritt?
Was tun, wenn der Microsoft Store geöffnet wird, auch wenn Sie Python unter Windows ausführen?
Was tun, wenn beim Konvertieren von PySparkDataFrame in PandasDataFrame ein Speicherfehler auftritt?
Was tun, wenn beim Importieren von matplotlib in Python (Mac) eine Fehlermeldung angezeigt wird?
Was tun, wenn beim Importieren von matplotlib mit Jupyter ein Importfehler auftritt?
Was tun, wenn beim Aktivieren von public_network oder private_network unter Vagrant + Arch Linux beim Vagrant + Arch Linux → Install netctl eine Fehlermeldung angezeigt wird?