Как добавить virtualenv в облако IBM с помощью Python - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь добавить sentry в свой проект, чтобы фиксировать ошибки. Чтобы использовать часовой, мне нужно установить raven с pip install raven.

Проблема в том, когда я хочу загрузить его в IBM как ibm function.

Как сказано в документации, мне нужно загрузить .zip файл со всеми .py файлами, которые я использую, включая virtualenv.

Если я сделаю это следующим образом (включая все в virtualenv):

zip -r ascrawler.zip venv __main__.py common.py db.py

размер zip-файла превышает допустимые 48 МБ.

Таким образом, следуя инструкции здесь , я могу добавить только те пакеты virtualenv, которые мне нужны. Таким образом я сделал это следующим образом:

zip -r ascrawler.zip venv/bin/activate_this.py venv/lib/python3.6/site-packages/raven venv/lib/python3.6/site-packages/raven-6.9.0.dist-info __main__.py common.py db.py

Но когда я пытаюсь вызвать эту функцию с помощью:

ibmcloud wsk action invoke --result ascrawler --param make Audi --param model A3 --param mileage 2500

Я получаю сообщение об ошибке, которое raven не может быть найдено:

.....
<module>",
"2018-07-04T12:55:56.590718898Z stderr: from raven import Client", "2018-07-04T12:55:56.590724452Z stderr: ModuleNotFoundError: No module named 'raven'"

Есть идеи, что я делаю не так?

1 Ответ

0 голосов
/ 10 июля 2018

Есть одна (маленькая) ошибка, мешающая работе этого примера.

  • Папка, содержащая файлы virtualenv, должна быть virtualenv, а не venv.

Среда выполнения Python проверяет наличие этого имени каталога для создания экземпляров модулей, включенных пользователем.

...