Ошибка облачной функции Google с wheel & pywin32 - PullRequest
2 голосов
/ 01 мая 2020

Я пытаюсь развернуть скрипт в облачных функциях Google в первый раз. Я просмотрел документацию и выяснил основы. Затем я начал пытаться развернуть свой настоящий сценарий. У меня ошибка с зависимостями из файла requirements.txt. Я нахожусь на этапе, когда я не знаю достаточно, чтобы указать c о своей проблеме, поэтому я перечислю то, что я сделал.

После того, как я запустил команду gcloud gcloud functions deploy FILENAME --runtime python37 с моим файлом имя, я столкнулся с этой ошибкой:

ERROR: (gcloud.functions.deploy) OperationError: code=3, message=Build failed: 
{
  "error": {
    "canonicalCode": "INVALID_ARGUMENT",
    "errorMessage": "`pip_download_ wheels` had stderr output:\nERROR: Could not find 
                      a version that satisfies the requirement pywin32==227 (from -r requirements.txt (line 32)) 
                      (from versions: n one)\nERROR:\r\nNo matching distribution found for pywin32==227 (from -r requirements.txt (line 32))
                      \n\nerror: `pip_download_wheels` returned code: 1",
    "errorTyp e": "InternalError",
    "errorId": "8C994D6A"
  }
}

Это мой файл needs.txt:

attrs==19.3.0
autobahn==20.4.3
Automat==20.2.0
cachetools==4.1.0
certifi==2020.4.5.1
cffi==1.14.0
chardet==3.0.4
constantly==15.1.0
cryptography==2.9.2
enum34==1.1.10
google-api-core==1.17.0
google-auth==1.14.1
google-cloud-bigquery==1.24.0
google-cloud-core==1.3.0
google-resumable-media==0.5.0
googleapis-common-protos==1.51.0
hyperlink==19.0.0
idna==2.9
incremental==17.5.0
kiteconnect==3.8.2
numpy==1.18.3
pandas==1.0.3
protobuf==3.11.3
pyarrow==0.17.0
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycparser==2.20
PyHamcrest==2.0.2
pyOpenSSL==19.1.0
python-dateutil==2.8.1
pytz==2020.1
pywin32==227
requests==2.23.0
rsa==4.0
service-identity==18.1.0
six==1.14.0
tqdm==4.45.0
Twisted==20.3.0
txaio==20.4.1
urllib3==1.25.9
wincertstore==0.2
zope.interface==5.1.0

Можете ли вы помочь мне разобраться, как обойти эту ошибку?


Редактировать: Основываясь на предложении сохранить только необходимые зависимости в файле requirements.txt, я попытался это сделать, и у меня появляется немного другая ошибка

ERROR: (gcloud.functions.deploy) OperationError: code=3, message=Build failed:
{
  "error": {
    "canonicalCode": "INVALID_ARGUMENT",
    "errorMessage": "`pip_download_\r\nwheels` had stderr output:
                      \n  WARNING: Legacy build of wheel for 'kiteconnect' created no files.
                      \n  Command arguments: /opt/python3.7/bin/python3.7 -u -c 'imp\r\nort sys, setuptools, tokenize; sys.argv[0] = '\"'\"'/tmp/pip-wheel-fdr9r30n/kiteconnect/setup.py'\"'\"'; __file__='\"'\"'/tmp/pip-wheel-fdr9r30n/kiteconnect/s\r\netup.py'\"'\"';f=getattr(tokenize, '\"'\"'open'\"'\"', open)(__file__);code=f.read().replace('\"'\"'\\r\\n'\"'\"', '\"'\"'\\n'\"'\"');f.close();exec(compile(c\r\node, __file__, '\"'\"'exec'\"'\"'))' bdist_wheel -d /tmp/pip-wheel-zkanpa3p\n  Command output: [use --verbose to show]\nERROR: Failed to build one or more whe\r\nels\n\nerror: `pip_download_wheels` returned code: 1",
    "errorType": "InternalError",
    "errorId": "7EF920E4"
  }
}

Новый файл requirements.txt выглядит так:

google-api-core==1.17.0
google-auth==1.14.1
google-cloud-bigquery==1.24.0
google-cloud-core==1.3.0
google-resumable-media==0.5.0
googleapis-common-protos==1.51.0
kiteconnect==3.8.2
numpy==1.18.3
pandas==1.0.3
pyarrow==0.17.0
python-dateutil==2.8.1
tqdm==4.45.0

1 Ответ

2 голосов
/ 01 мая 2020

Пакет pywin32 предоставляет дистрибутивы только для платформы Windows , поэтому вы не сможете установить его во время выполнения облачных функций Google.

Действительно ли вы нужно это? Ваш файл requirements.txt выглядит как вывод pip freeze. Вам, вероятно, не нужны все эти зависимости. Он должен включать в себя только те зависимости, которые вам необходимы для import в вашей функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...