python lib 安裝遇到報錯clang: error: unknown argument: '-mno-fused-madd'

python lib 安裝遇到報錯clang: error: unknown argument: ‘-mno-fused-madd’

在安裝python lib的時候,可以使用pip工具
pip安裝lib有兩種方式:
1.pip install pycrypto
2.pip install -r requirement.txt (該txt類似於maven的pom文件)


pip 一般從國外網站拉取,如果想加速拉取,可以設置國內鏡像地址:
在當前用戶的根目錄 mkdir .pip
echo ‘[global]’ > 用戶根目錄/.pip/pip.conf
echo ‘index-url = https://pypi.mirrors.ustc.edu.cn/simple’ >> 用戶根目錄/.pip/pip.conf


在使用pip install crypto的過程中遇到clang報如下錯誤
clang: error: unknown argument: ‘-mno-fused-madd’
遇到這個錯誤後網上查到有很多方式解決:
1. export ARCHFLAGS=”-Wno-error=unused-command-line-argument-hard-error-in-future” (在我這感覺是坑爹方法)
>
2. 下載最新的clang (還是報錯)
>
3. 換GCC export CC=gcc-4.9 會報 error: unrecognized command line option ‘-Wshorten-64-to-32’ (坑爹)
>
4. 在App store升級clang (無效)
>
5. export CFLAGS=-Qunused-arguments
export CPPFLAGS=-Qunused-arguments (更坑)


最終解決方法: 找到了適合自己的^_^

sudo sed -i '' -e 's/-mno-fused-madd//g' /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_sysconfigdata.py (clang的選項都在那裏面了,刪掉那個該死的選項)


sudo rm /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_sysconfigdata.pyc   (把編譯文件刪掉)

事後說明:(Mac上)
python 在Mac上裝完,相關的系統文件放在/System/Library/Frameworks/python.framework/Version下,pip下載lib需要用到這邊的系統配置文件去config make 編譯某些帶C文件的lib,這些lib會被clang編譯成.so動態庫
當用pip安裝新lib後,這些下載的新lib在/Library/Python/2.7/site-packages中


關於py pyc pyo
1. vim xxx.py 於是就有了py文件
python xxx.py可以直接運行py文件
2. python -m xxx xxx.py就有了xxx.pyc文件。它是二進制文件
爲了加快模塊的加載速度
3. python -O xxx.py 就有了xxx.pyo 是性能優化後的二進制

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章