日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何制作可以在 MaxCompute 上使用的 crcmod

發布時間:2024/8/23 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何制作可以在 MaxCompute 上使用的 crcmod 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前我們介紹過在 PyODPS DataFrame 中使用三方包。對于二進制包而言,MaxCompute 要求使用包名包含 cp27-cp27m 的 Wheel 包。但對于部分長時間未更新的包,例如 oss2 依賴的 crcmod,PyPI 并未提供 Wheel 包,因而需要自行打包。本文介紹了如何使用 quay.io/pypa/manylinux1_x86_64 鏡像制作可在 MaxCompute 上使用的 Wheel 包。

本文參考?https://github.com/pypa/manylinux?,quay.io/pypa/manylinux1_x86_64 鏡像也是目前絕大多數 Python 項目在 Travis CI 上打包的標準工具,如有進一步的問題可研究該項目。

  • 準備依賴項
  • 不少包都有依賴項,例如 devel rpm 包或者其他 Python 包,在打包前需要了解該包的依賴,通常可以在 Github 中找到安裝或者打包的相關信息。對于 crcmod,除 gcc 外不再有別的依賴,因而此步可略去。

  • 修改 setup.py 并驗證(建議在 Mac OS 或者 Linux 下)
  • 較舊的 Python 包通常不支持制作 Wheel 包。具體表現為在使用?python setup.py bdist_wheel?打包時報錯。如果需要制作 Wheel 包,需要修改 setup.py 以支持 Wheel 包的制作。對于一部分包,可以簡單地將 distutils 中的 setup 函數替換為 setuptools 中的 setup 函數。而對于部分自定義操作較多的 setup.py,需要詳細分析打包過程,這一項工作可能會很復雜,本文就不討論了。

    例如,對于 crcmod,修改 setup.py 中的

    from distutils.core import setup

    from setuptools import setup

    即可。

    修改完成后,在項目根目錄執行

    python setup.py bdist_wheel

    如果沒有報錯且生成的 Wheel 包可在本地使用,說明 setup.py 已可以使用。

  • 準備打包腳本
  • 在項目中新建 bin 目錄,并在其中創建 build-wheel.sh:

    mkdir bin && vim bin/build-wheel.sh

    在其中填入以下內容:

    #!/bin/bash # modified from https://github.com/pypa/python-manylinux-demo/blob/master/travis/build-wheels.sh set -e -x# Install a system package required by our library # 將這里修改為安裝依賴項的命令# Compile wheels PYBIN=/opt/python/cp27-cp27m/bin # 如果包根目錄下有 dev-requirements.txt,取消下面的注釋 # "${PYBIN}/pip" install -r /io/dev-requirements.txt "${PYBIN}/pip" wheel /io/ -w wheelhouse/# Bundle external shared libraries into the wheels for whl in wheelhouse/*.whl; doauditwheel repair "$whl" -w /io/wheelhouse/ done

    將第一步獲知的依賴項安裝腳本填入此腳本,在使用 python 或 pip 時,注意使用 /opt/python/cp27-cp27m/bin 中的版本。

    最后,設置執行權限

    chmod a+x bin/build-wheel.sh
  • 打包
  • 使用 Docker 下載所需的鏡像(本步需要使用 Docker,請提前安裝),此后在項目根目錄下打包:

    docker pull quay.io/pypa/manylinux1_x86_64 docker run --rm -v `pwd`:/io quay.io/pypa/manylinux1_x86_64 /io/bin/build-wheel.sh

    完成的 Wheel 包位于項目根目錄下的 wheelhouse 目錄下。


    #阿里云開年Hi購季#幸運抽好禮!
    點此抽獎:https://www.aliyun.com/acts/product-section-2019/yq-lottery?utm_content=g_1000042901

    原文鏈接
    本文為云棲社區原創內容,未經允許不得轉載。

    總結

    以上是生活随笔為你收集整理的如何制作可以在 MaxCompute 上使用的 crcmod的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。