intake / intake/python-snappy

Installation issue on Mac (libstdc++ vs libc++)

オープン
#92 コメント 0 件 リアクション 2 件 担当者 0 名 GitHub で見る
主要言語
Python
スター
490
フォーク
104
PR マージ指標
30日以内にマージされた PR はありません

説明

```
System Version: macOS 10.15.4 (19E287)
Kernel Version: Darwin 19.4.0
Xcode 11.4.1
Build version 11E503a
```
During `pip install python-snappy`, received:
```
Installing collected packages: python-snappy
Running setup.py install for python-snappy ... error
ERROR: Command errored out with exit status 1:
command: /Applications/miniconda3/envs/serialization-benchmarking/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/13/2dfbkf595fq1f1_5tjvzq35h0000gp/T/pip-install-nsuxlclp/python-snappy/setup.py'"'"'; __file__='"'"'/private/var/folders/13/2dfbkf595fq1f1_5tjvzq35h0000gp/T/pip-install-nsuxlclp/python-snappy/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/13/2dfbkf595fq1f1_5tjvzq35h0000gp/T/pip-record-5g8l8mp0/install-record.txt --single-version-externally-managed --compile --install-headers /Applications/miniconda3/envs/serialization-benchmarking/include/python3.7m/python-snappy
cwd: /private/var/folders/13/2dfbkf595fq1f1_5tjvzq35h0000gp/T/pip-install-nsuxlclp/python-snappy/
Complete output (27 lines):
/Applications/miniconda3/envs/serialization-benchmarking/lib/python3.7/distutils/dist.py:274: UserWarning: Unknown distribution option: 'cffi_modules'
warnings.warn(msg)
running install
running build
running build_py
creating build
creating build/lib.macosx-10.7-x86_64-3.7
creating build/lib.macosx-10.7-x86_64-3.7/snappy
copying snappy/snappy.py -> build/lib.macosx-10.7-x86_64-3.7/snappy
copying snappy/snappy_cffi.py -> build/lib.macosx-10.7-x86_64-3.7/snappy
copying snappy/__init__.py -> build/lib.macosx-10.7-x86_64-3.7/snappy
copying snappy/hadoop_snappy.py -> build/lib.macosx-10.7-x86_64-3.7/snappy
copying snappy/snappy_formats.py -> build/lib.macosx-10.7-x86_64-3.7/snappy
copying snappy/__main__.py -> build/lib.macosx-10.7-x86_64-3.7/snappy
copying snappy/snappy_cffi_builder.py -> build/lib.macosx-10.7-x86_64-3.7/snappy
running build_ext
building 'snappy._snappy' extension
creating build/temp.macosx-10.7-x86_64-3.7
creating build/temp.macosx-10.7-x86_64-3.7/snappy
gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Applications/miniconda3/envs/serialization-benchmarking/include -arch x86_64 -I/Applications/miniconda3/envs/serialization-benchmarking/include -arch x86_64 -I/Applications/miniconda3/envs/serialization-benchmarking/include/python3.7m -c snappy/snappymodule.cc -o build/temp.macosx-10.7-x86_64-3.7/snappy/snappymodule.o
clang: warning: include path for libstdc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead [-Wstdlibcxx-not-found]
gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Applications/miniconda3/envs/serialization-benchmarking/include -arch x86_64 -I/Applications/miniconda3/envs/serialization-benchmarking/include -arch x86_64 -I/Applications/miniconda3/envs/serialization-benchmarking/include/python3.7m -c snappy/crc32c.c -o build/temp.macosx-10.7-x86_64-3.7/snappy/crc32c.o
g++ -bundle -undefined dynamic_lookup -L/Applications/miniconda3/envs/serialization-benchmarking/lib -arch x86_64 -L/Applications/miniconda3/envs/serialization-benchmarking/lib -arch x86_64 -arch x86_64 build/temp.macosx-10.7-x86_64-3.7/snappy/snappymodule.o build/temp.macosx-10.7-x86_64-3.7/snappy/crc32c.o -lsnappy -o build/lib.macosx-10.7-x86_64-3.7/snappy/_snappy.cpython-37m-darwin.so
clang: warning: libstdc++ is deprecated; move to libc++ with a minimum deployment target of OS X 10.9 [-Wdeprecated]
ld: library not found for -lstdc++
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command 'g++' failed with exit status 1
----------------------------------------
ERROR: Command errored out with exit status 1: /Applications/miniconda3/envs/serialization-benchmarking/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/13/2dfbkf595fq1f1_5tjvzq35h0000gp/T/pip-install-nsuxlclp/python-snappy/setup.py'"'"'; __file__='"'"'/private/var/folders/13/2dfbkf595fq1f1_5tjvzq35h0000gp/T/pip-install-nsuxlclp/python-snappy/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/13/2dfbkf595fq1f1_5tjvzq35h0000gp/T/pip-record-5g8l8mp0/install-record.txt --single-version-externally-managed --compile --install-headers /Applications/miniconda3/envs/serialization-benchmarking/include/python3.7m/python-snappy Check the logs for full command output.
```

Fixed using: `CFLAGS="-stdlib=libc++" pip install python-snappy`

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

Start with setup.py and the snappy/snappymodule.cc build path shown in the installation log, then reproduce the macOS pip install without the workaround. Done means the extension links against libc++ and python-snappy installs successfully without requiring CFLAGS="-stdlib=libc++".

索引モデルが issue の本文から書いたものです。

評価

技術スタック
cpp, macos, python
領域
build-system, operating-systems
issue の種類
バグ
難易度
2/5
見積もり時間
1〜3時間
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
45/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。