Когда я пытаюсь установить python-pcl (PCL - это библиотека облака точек для представления данных, например, данных лазерного радара. Я выполнил инструкцию по https://github.com/strawlab/python-pcl, и я уже скопировал файл travis / pcl-2d-1.8.pc в / usr / local / lib / pkgconfig) на моем компьютере. Я набрал AppledeMacBook-Pro-3:python-pcl-0.3.0rc1 apple$ python setup.py install
в своем терминале и столкнулся с проблемой ниже:
running install
running bdist_egg
running egg_info
writing requirements to python_pcl.egg-info/requires.txt
writing python_pcl.egg-info/PKG-INFO
writing top-level names to python_pcl.egg-info/top_level.txt
writing dependency_links to python_pcl.egg-info/dependency_links.txt
reading manifest file 'python_pcl.egg-info/SOURCES.txt'
writing manifest file 'python_pcl.egg-info/SOURCES.txt'
installing library code to build/bdist.macosx-10.6-x86_64/egg
running install_lib
running build_py
running build_ext
skipping 'pcl/_pcl_180.cpp' Cython extension (up-to-date)
building 'pcl._pcl' extension
/usr/bin/clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Users/apple/miniconda3/include -I/Users/apple/miniconda3/include -DEIGEN_YES_I_KNOW_SPARSE_MODULE_IS_NOT_STABLE_YET=1 -I/Users/apple/miniconda3/pkgs/python-3.5.4-h8f450c2_22/lib/python3.5/site-packages/numpy/core/include -I/usr/local/include/pcl-1.8 -I/usr/local/Cellar/openni/1.5.7.10/include/ni -I/usr/local/include/pcl-1.8 -I/usr/local/Cellar/flann/1.9.1_6/include -I/usr/local/include/pcl-1.8 -I/opt/local/include/eigen3 -I/usr/include/ni -I/usr/include/vtk-5.8 -I/usr/local/include/vtk-8.0 -I/usr/local/Cellar/vtk/8.0.1/include -I/Users/apple/miniconda3/pkgs/python-3.5.4-h8f450c2_22/include/python3.5m -c pcl/_pcl_180.cpp -o build/temp.macosx-10.6-x86_64-3.5/pcl/_pcl_180.o
warning: include path for stdlibc++ headers not found; pass '-std=libc++' on the
command line to use the libc++ standard library instead
[-Wstdlibcxx-not-found]
pcl/_pcl_180.cpp:447:10: fatal error: 'vector' file not found
#include <vector>
^~~~~~~~
Кто-то говорит, что это как-то связано с моей версией Cython. Но я уже переключил Cython на версию 0.25.2, но все еще не работает. У кого-нибудь есть такая же проблема? Большое спасибо. Кстати, моя версия python - 3.5.4, а моя версия Mac - macOS Mojave 10.14.1.
Извините, я добавил подробности.
как уже упоминалось, вам нужно будет настроить настройку вручную, если проблема еще не возникла на их трекере github, вы также должны уведомить их
Я буду. Спасибо, что напомнили.
@LeeDennis Вы знаете, что это за вопрос-хамелеон? meta.stackexchange.com/questions/43478/… Если вы столкнулись с новой проблемой, задайте новый вопрос.
Извините, я новичок в этом. Удаляю и задам другой вопрос.
Это особая проблема с текущими установками MacOS. Вы можете настроить setup.py
и добавить, как следует из предупреждения, -std=libc++
в параметры компиляции, т.е.
from distutils.core import setup
from Cython.Build import cythonize
... some stuff
#passing `-stdlib=libc++` to compiler and linker:
ext_modules = [Extension(...,
language='c++',
extra_compile_args=["-stdlib=libc++"], # + anything else you need
extra_link_args= ["-stdlib=libc++"] # + anything else you need]
... some more stuff
Я также добавил -stdlib=libc++
в параметры компоновщика, потому что это, вероятно, будет следующей проблемой, с которой вы столкнетесь.
Дополнительная информация: в мире MacOS долгое время существовали две разные реализации стандартной библиотеки C++: -libstdc++
, связанный с gcc
, и libc++
, связанный с clang
. Вначале -libstdc++
также использовался по умолчанию с clang
-компилятором. Однако это уже не так - он даже не установлен, и поэтому заголовки не могут быть найдены. Я не уверен, почему ваша версия clang
не принимает libc++
по умолчанию - поэтому вам нужно вручную передать ее компилятору / компоновщику.
Не могли бы вы дать нам более подробную информацию? Что такое ПКЛ? Какую команду вы запускали, чтобы попытаться установить? Откуда это сообщение об ошибке? (дайте нам полный стек, иначе без контекста трудно помочь)