在存在 python 的 2 个版本时安装 COCOAPI

Installing COCOAPI when 2 versions of python are present

我需要在我的 linux 机器上为 Python 3.5 安装 COCOAPI,但是当我安装 "make" 时,它会自动为 2.7 安装它。使用 "make" 时是否可以选择 python 版本?

编辑 1: 转到 PythonAPI 文件夹并通过 python3 setup.py install 安装它会出现以下错误。

sudo python3 setup.py install

running install
running bdist_egg
running egg_info
creating pycocotools.egg-info
writing requirements to pycocotools.egg-info/requires.txt
writing dependency_links to pycocotools.egg-info/dependency_links.txt
writing top-level names to pycocotools.egg-info/top_level.txt
writing pycocotools.egg-info/PKG-INFO
writing manifest file 'pycocotools.egg-info/SOURCES.txt'
reading manifest file 'pycocotools.egg-info/SOURCES.txt'
writing manifest file 'pycocotools.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
creating build
creating build/lib.linux-x86_64-3.5
creating build/lib.linux-x86_64-3.5/pycocotools
copying pycocotools/coco.py -> build/lib.linux-x86_64-3.5/pycocotools
copying pycocotools/__init__.py -> build/lib.linux-x86_64-3.5/pycocotools
copying pycocotools/mask.py -> build/lib.linux-x86_64-3.5/pycocotools
copying pycocotools/cocoeval.py -> build/lib.linux-x86_64-3.5/pycocotools
running build_ext
cythoning pycocotools/_mask.pyx to pycocotools/_mask.c
/home/pradyumn/.local/lib/python3.5/site-packages/Cython/Compiler/Main.py:367: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /home/pradyumn/cocoapi-master/PythonAPI/pycocotools/_mask.pyx
  tree = Parsing.p_module(s, pxd, full_module_name)
building 'pycocotools._mask' extension
creating build/common
creating build/temp.linux-x86_64-3.5
creating build/temp.linux-x86_64-3.5/pycocotools
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pradyumn/.local/lib/python3.5/site-packages/numpy/core/include -I../common -I/usr/include/python3.5m -c ../common/maskApi.c -o build/temp.linux-x86_64-3.5/../common/maskApi.o -Wno-cpp -Wno-unused-function -std=c99
../common/maskApi.c: In function ‘rleToBbox’:
../common/maskApi.c:141:31: warning: ‘xp’ may be used uninitialized in this function [-Wmaybe-uninitialized]
       if(j%2==0) xp=x; else if(xp<x) { ys=0; ye=h-1; }
                               ^
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pradyumn/.local/lib/python3.5/site-packages/numpy/core/include -I../common -I/usr/include/python3.5m -c pycocotools/_mask.c -o build/temp.linux-x86_64-3.5/pycocotools/_mask.o -Wno-cpp -Wno-unused-function -std=c99
pycocotools/_mask.c:4:20: fatal error: Python.h: No such file or directory
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
enter code here

编辑 2

我尝试安装 cython,然后安装 pycocotools,但这给了我以下错误。

pip3 install pycocotools 
Collecting pycocotools
  Using cached https://files.pythonhosted.org/packages/96/84/9a07b1095fd8555ba3f3d519517c8743c2554a245f9476e5e39869f948d2/pycocotools-2.0.0.tar.gz
Building wheels for collected packages: pycocotools
  Running setup.py bdist_wheel for pycocotools ... error
  Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-p1jp5iir/pycocotools/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 /tmp/pip-wheel-xirt_d3c --python-tag cp35:
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-3.5
  creating build/lib.linux-x86_64-3.5/pycocotools
  copying pycocotools/__init__.py -> build/lib.linux-x86_64-3.5/pycocotools
  copying pycocotools/coco.py -> build/lib.linux-x86_64-3.5/pycocotools
  copying pycocotools/mask.py -> build/lib.linux-x86_64-3.5/pycocotools
  copying pycocotools/cocoeval.py -> build/lib.linux-x86_64-3.5/pycocotools
  running build_ext
  building 'pycocotools._mask' extension
  creating build/temp.linux-x86_64-3.5
  creating build/temp.linux-x86_64-3.5/pycocotools
  creating build/temp.linux-x86_64-3.5/common
  x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pradyumn/.local/lib/python3.5/site-packages/numpy/core/include -Icommon -I/usr/include/python3.5m -c pycocotools/_mask.c -o build/temp.linux-x86_64-3.5/pycocotools/_mask.o -Wno-cpp -Wno-unused-function -std=c99
  pycocotools/_mask.c:32:20: fatal error: Python.h: No such file or directory
  compilation terminated.
  error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

  ----------------------------------------
  Failed building wheel for pycocotools
  Running setup.py clean for pycocotools
Failed to build pycocotools
Installing collected packages: pycocotools
  Running setup.py install for pycocotools ... error
    Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-p1jp5iir/pycocotools/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-pipcgtu8/install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.5
    creating build/lib.linux-x86_64-3.5/pycocotools
    copying pycocotools/__init__.py -> build/lib.linux-x86_64-3.5/pycocotools
    copying pycocotools/coco.py -> build/lib.linux-x86_64-3.5/pycocotools
    copying pycocotools/mask.py -> build/lib.linux-x86_64-3.5/pycocotools
    copying pycocotools/cocoeval.py -> build/lib.linux-x86_64-3.5/pycocotools
    running build_ext
    building 'pycocotools._mask' extension
    creating build/temp.linux-x86_64-3.5
    creating build/temp.linux-x86_64-3.5/pycocotools
    creating build/temp.linux-x86_64-3.5/common
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pradyumn/.local/lib/python3.5/site-packages/numpy/core/include -Icommon -I/usr/include/python3.5m -c pycocotools/_mask.c -o build/temp.linux-x86_64-3.5/pycocotools/_mask.o -Wno-cpp -Wno-unused-function -std=c99
    pycocotools/_mask.c:32:20: fatal error: Python.h: No such file or directory
    compilation terminated.
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

    ----------------------------------------
Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-p1jp5iir/pycocotools/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-pipcgtu8/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-p1jp5iir/pycocotools/

编辑 3

要解决上面的错误 运行 下面是 python 的适当版本。

sudo apt-get install python3.5-dev

然后执行以下操作:

pip3 install pycocotools --user

然后重新运行以下内容:

sudo python3 setup.py install

您可以确保默认值 python 解析为您感兴趣的那个,例如通过符号链接 pythonpython2 定义的任何地方(可能是 /usr/bin)

使用 git clone https://github.com/cocodataset/cocoapi.git 克隆 repo 然后输入它所在的目录并键入 python3 setup.py install 应该使用 python3.

安装

如果上述方法不起作用,请尝试 pip3 install cython,然后是 pip3 install pycocotools(如有必要,您可以向所有这些添加 --user 标志)