Bazı requirements.txt python bağımlılıkları yüklenemiyor
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
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-slim
veya kullanabilirsiniz python:3.8
ve 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-dir
işaretini de kullanabilirsiniz pip install
.
Çö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ı