Sto tentando di utilizzare AWS Lambda per eseguire l'introspezione del pacchetto python.Strumenti di setup non trovati su AWS Lambda
Quello che sto cercando di fare è, su un git push, eseguire il checkout di un pacchetto, installare le sue dipendenze (le dipendenze del pacchetto sono richieste per l'introspezione) ed eseguire gli strumenti. Per impostazione predefinita, AWS non ha pip installate (si suppone che impacchettano le proprie dipendenze), quindi raggruppo pip con la funzione lambda.
Ogni altra parte di my lambda funziona, tranne che per provare a installare le dipendenze del pacchetto. Quando si tenta di utilizzare il mio pip in bundle con il pacchetto check-out, non riesce il tentativo di eseguire setuptools:
Collecting alembic==0.8.3 (from -r /tmp/tmpnx0tY0/requirements.txt (line 1))
Downloading alembic-0.8.3.tar.gz (935kB)
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named setuptools
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/tmp30m2KN/alembic
Ho provato di tutto: aggiungere il percorso corrente (con setuptools) al percorso, copiare setuptools alla temperatura directory, eseguire pip install setuptools
, passare le opzioni utilizzando --global-options
, provato a pOpen
con un env specificando PYTHONPATH
, anche provato a utilizzare le versioni precedenti di pip con: pip install -r requirements.txt --download --no-install
. Niente sembra funzionare.
Come posso ottenere questa chiamata python setup.py egg_info
per individuare correttamente setuptools?
Quindi si sta tentando di installare pacchetti pip in Lambda durante il runtime della funzione? – birnbaum
@birnbaum Sì. Poiché questa introspezione può inserire un numero qualsiasi di pacchetti software, non posso sapere quali dipendenze ho bisogno in anticipo. La soluzione è quella di installarlo in fase di runtime, ma mi sto occupando di questo problema quando cerco di farlo. –
Hai incluso solo pip con il tuo lambda oppure hai impacchettato un'intera struttura di directory virtualenv? – Leon