質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

Q&A

1回答

1812閲覧

sudachipy を Google Cloud functions で使用したいが、シンボリックリンクが削除されて使えない?

wine

総合スコア18

Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

0グッド

0クリップ

投稿2020/08/05 05:38

編集2022/01/12 10:55

環境:
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に改名して、シンボリックリンクを削除しても駄目でした。

どのようにすれば動作するようになるのか、ご助力いただければ幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

requirements.txtを作ってないとか、アップロードしていないとか、パッケージ化していないとか、そういうのはありませんか?

Python ランタイム
の一番下
依存関係の指定

Python で記述された Cloud Functions の依存関係を指定するには、2 つの方法があります。1 つは pip パッケージ マネージャーの requirements.txt ファイルを使用する方法、もう 1 つは関数と一緒にローカル依存関係をパッケージ化する方法です。

投稿2020/08/05 05:55

FiroProchainezo

総合スコア2387

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

wine

2020/08/05 06:09

requirements.txt と .gcloudignore は一応、関数ファイルと同じディレクトリに置いてます /// requirements.txt sudachipy sudachidict_core /// .gcloudignoreは空のファイルです。 GCPからダウンロードしたソースに、requirements.txtもあったのでアップロードできてないことはないと考えています。
FiroProchainezo

2020/08/05 06:42

requirements.txtの中身を提供いただけませんか?
wine

2020/08/05 07:32

```requirements.txt sudachipy sudachidict_core ``` ひとつ勘違いしていたことに気づきました アップロードしたvenvディレクトリ内のsudachipyやsudachidictで処理されていると思っていたのですが、違うんですね・・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問