環境:
python3.8
google cloud functions
pip venv
python 初心者です。
Google Cloud functions で sudachipy と sudachidict_core を使用した以下の関数をデプロイしたのですが、エラーが出て困っています。
python
1# デプロイ手順 2# python -m venv venv 3# source venv/bin/activate 4# pip install sudachipy 5# pip install sudachidict_core 6# sudachipy link -t core 7# deactivate 8# gcloud functions deploy analyze_ja_text --region asia-northeast1 --runtime python38 --trigger-http --allow-unauthenticated 9from sudachipy import tokenizer 10from sudachipy import dictionary 11import re 12from flask import jsonify 13 14def analyze_ja_text(request): 15 request_json = request.get_json(silent=True) 16 # request_args = request.args 17 text = request_json['text'] 18 19 tokenizer_obj = dictionary.Dictionary().create() 20 modeA = tokenizer.Tokenizer.SplitMode.A 21 wordsA = tokenizer_obj.tokenize(text, modeA) 22 23 params = {'wordsA': wordsA} 24 return jsonify(params)
エラー①File "/layers/google.python.pip/pip/sudachipy/config.py", line 56, in create_default_link_for_sudachidict_core dict_path = Path(import_module('sudachidict').file).parent File
--省略--
in _find_and_load_unlocked ModuleNotFoundError: No module named 'sudachidict'
エラー②File "/layers/google.python.functions-framework/functions-framework/flask/app.py", line 2447, in wsgi_app response = self.full_dispatch_request() File "/layers/google.python.functions-framework/functions-framework/flask/app.py", line 1952,
--略--
File "/opt/python3.8/lib/python3.8/pathlib.py", line 442, in symlink return os.symlink(a, b) OSError: [Errno 30] Read-only file system: '/laers/google.python.pip/pip/sudachidict_core' -> '/layers/google.python.pip/pip/sudachidict'
ソースをGCPからダウンロードしたところ、sudachidict のシンボリックリンクが削除されていました。
cloud functionsの仕様でシンボリックリンクは使えないのかと考え、回避策として、sudachi.jsonに
json
1"systemDict" : "../../sudachidict_core/resources/system.dic",
を追記したのですが駄目でした。
また、sudachidict_coreディレクトリをsudachidictに改名して、シンボリックリンクを削除しても駄目でした。
どのようにすれば動作するようになるのか、ご助力いただければ幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/05 06:09
2020/08/05 06:42
2020/08/05 07:32