Проблемы с установкой PCL на моем компьютере

Когда я пытаюсь установить 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.

Не могли бы вы дать нам более подробную информацию? Что такое ПКЛ? Какую команду вы запускали, чтобы попытаться установить? Откуда это сообщение об ошибке? (дайте нам полный стек, иначе без контекста трудно помочь)

Silmathoron 17.12.2018 23:00

Извините, я добавил подробности.

Lee Dennis 18.12.2018 03:15

как уже упоминалось, вам нужно будет настроить настройку вручную, если проблема еще не возникла на их трекере github, вы также должны уведомить их

Silmathoron 18.12.2018 09:42

Я буду. Спасибо, что напомнили.

Lee Dennis 18.12.2018 11:44

@LeeDennis Вы знаете, что это за вопрос-хамелеон? meta.stackexchange.com/questions/43478/… Если вы столкнулись с новой проблемой, задайте новый вопрос.

ead 18.12.2018 11:52

Извините, я новичок в этом. Удаляю и задам другой вопрос.

Lee Dennis 18.12.2018 12:22
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
6
446
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это особая проблема с текущими установками 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++ по умолчанию - поэтому вам нужно вручную передать ее компилятору / компоновщику.

Другие вопросы по теме