зависимости google-cloud переопределяются в движке приложения python - PullRequest
0 голосов
/ 25 сентября 2018

Мы используем стандарт GAE и в соответствии с документацией Google, мы ожидаем, что поставщики зависимостей в какой-либо папке будут использовать pip install requirement-name -t lib/.

Мы хотим использовать оба BigQuery & pub-sub в одном GAEПроект, который я думаю, не очень редкая комбинация.

Теперь проблема может быть установлена ​​только тогда, когда мы можем установить только одну из клиентских библиотек, так как обе разделяют пространство имен google>cloud, в зависимости от того, что будет установлено позже, переопределит более раннюю зависимость.

Снимки экрана: -

1) Когда установлена ​​только клиентская библиотека BigQuery : -

only GBQ dependency screenshot

2) После установки pip install -t lib/ google-cloud-pubsub

after installing pubsub

В чем может быть проблема и решение для одного и того же?

ОБНОВЛЕНИЕ : -

Далее попытались установить эти две зависимости в виртуальной среде, не продавая в папке lib/, там обе зависимости устанавливаются без перезаписи друг друга.Таким образом, выглядело так, как будто проблема связана с продавцами в папке.

Снимок экрана для этого приложения без зависимостей продавца.

enter image description here

1 Ответ

0 голосов
/ 25 сентября 2018

Вы должны установить все зависимости в одной команде:

$ pip install -t lib/ google-cloud-bigquery google-cloud-pubsub

Это установит оба пакета рядом друг с другом:

$ ls lib/google/cloud
__pycache__  _testing.py  environment_vars.py  obsolete.py   pubsub_v1
_helpers.py  bigquery     exceptions.py        operation.py
_http.py     client.py    iam.py               pubsub.py

Установка зависимостей из файла требований должнаимеют тот же эффект:

$ cat requirements.txt
google-cloud-bigquery
google-cloud-pubsub
$ pip install -t lib/ -r requirements.txt

Обязательно начните с пустой папки lib/ и с последней версией pip:

pip install -U pip
...