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.)
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.
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.
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.
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'],
10.0.17763.0
unterscheidet sich je nach Windows-Version. Daher muss der Inhalt von C: \ Programme (x86) \ Windows Kits \ 10 \ Include
im Explorer überprüft und in die vorhandene Version umgeschrieben werden. Es gibt.C: \ Programme (x86) \ Windows Kits
nicht vorhanden ist, müssen Sie das Windows 10 SDK aus dem Visual Studio Installer hinzufügen.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'],
10.0.17763.0
ist der gleiche wie zuvor. (Wenn Sie die x86-Eingabeaufforderung anstelle der x64-Eingabeaufforderung verwenden, müssen Sie x64 in x86 umschreiben.)Ü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
)
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.)
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.