ikeh1024のブログ

ZennやQiitaに書くにはちょっと小粒なネタをこちらに書いています

macOSアプリからPythonを呼び出そうと試みたときのメモ

結論

  • 今のところ、ピュアなPythonは組み込んで使えそう
  • 3rd partyのライブラリを含める方法は分からずじまい

参考

set -e
echo "Signing contents of $CODESIGNING_FOLDER_PATH/Contents/Resources/python-stdlib/lib-dynload as $EXPANDED_CODE_SIGN_IDENTITY_NAME ($EXPANDED_CODE_SIGN_IDENTITY)"
cd "$CODESIGNING_FOLDER_PATH/Contents/Resources/python-stdlib/lib-dynload"
/usr/bin/codesign --force --sign "$EXPANDED_CODE_SIGN_IDENTITY" --options runtime --timestamp=none --preserve-metadata=identifier,entitlements,flags --generate-entitlement-der *.so

Could you elaborate on how you managed to integrate a 3rd party library?


Sure. In my case I wanted to add librosa library, and basically I added a script that will download it dependencies to a folder i have control over python3 -m pip install --target="${CODESIGNING_FOLDER_PATH}/Contents/Resources/" librosa then, in my Python setup I added this path to my PYTHONPATH let resources = bundle.bundlePath.appending("/Contents/Resources/") setenv("PYTHONPATH", "(stdLibPath):(libDynloadPath):(resources)", 1) I have an example on github https://github.com/brenovaladao/PythonSample