Bazı requirements.txt python bağımlılıkları yüklenemiyor

Dec 27 2020

Python bağımlılıklarımı gereksinim.txt pip'ten yüklerken neden şikayet etmediğimi anlayamıyorum, ancak bunu docker konteynerinden yaptığımda aşağıdaki hata mesajını aldım:

Required.txt içeriği:

Flask~=1.1
grpcio
grpcio-tools
protobuf
iexfinance
numpy
pandas
pandas_datareader
pymongo

Konteynırımı aşağıdaki gibi oluşturdum:

docker run -it -p 8080:50051 -v ${pwd}:/app -w "/app" python:3.8-alpine

Bu komutu kullanarak bağımlılıklarımı kurmaya çalıştım:

pip install -r requirements.txt

Bazı ekran görüntüsünün altında:

Yanıtlar

2 jakub Dec 27 2020 at 04:59

Alpine Linux, musl C kullanır, ancak çoğu python wheel dosyası glib C için derlenmiştir. Bu nedenle, C / C ++ ile yazılmış uzantılara sahip paketlerin derlenmesi gerekir. Eğer kurulu bir derleyiciniz yoksa, bir hata alırsınız.

Paketlerin derleme sırasında gerektirebileceği bir derleyici ve bağımlılıklar kurmak yerine, Alpine tabanlı olmayan bir python Docker görüntüsü kullanmanızı öneririm. Örneğin, python:3.8-slimveya kullanabilirsiniz python:3.8ve Linux tekerlekleri gönderen python paketlerinin derlenmesi gerekmez. OP'lerde listelenen tüm paketler requirements.txt, kullanılıyorsa önceden derlenmiş tekerleklerden kurulabilir python:3.8-slim.

Böylece bu komutları kullanabilirsiniz

docker run -it -p 8080:50051 -v ${pwd}:/app -w "/app" python:3.8-slim
pip install -r requirements.txt

Ortaya çıkan görüntünün boyutu konusunda endişeleriniz varsa, önbelleğe almayı devre dışı bırakmak için --no-cache-dirişaretini de kullanabilirsiniz pip install.

MselmiAli Dec 27 2020 at 05:00

Çözüm, yeni paketler oluşturmak için kullanılan temel paketleri çeken bir "meta-paket" olan alpine-SDK'yı güncellemekti. "

apk add --update alpine-sdk

Çözümü burada buldum:

GitHub: Docker Alpine Sorunları