कुछ आवश्यकताओं को स्थापित नहीं कर सकता

Dec 27 2020

मैं यह पता नहीं लगा सकता कि कब आवश्यकताओं से मेरे अजगर निर्भरता स्थापित कर रहे हैं।

आवश्यकताएँ। सामग्री:

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

मैंने अपना कंटेनर नीचे की तरह बनाया है:

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

मैंने इस कमांड का उपयोग करके अपनी निर्भरता स्थापित करने की कोशिश की है:

pip install -r requirements.txt

कुछ स्क्रीनशॉट लें:

जवाब

2 jakub Dec 27 2020 at 04:59

अल्पाइन लिनक्स मसल सी का उपयोग करता है, लेकिन अधिकांश पायथन व्हील फाइलें ग्लिब सी के लिए संकलित की जाती हैं। इसलिए, ऐसे पैकेज जिनमें सी / सी ++ में लिखित एक्सटेंशन संकलित किए जाने की आवश्यकता है। यदि आपके पास संकलक स्थापित नहीं है, तो आपको एक त्रुटि मिलेगी।

एक संकलक और निर्भरता स्थापित करने के बजाय जो संकुल को संकलन के समय की आवश्यकता हो सकती है, मैं सुझाव देता हूं कि एक अजगर डोकर छवि का उपयोग करें जो अल्पाइन पर आधारित नहीं है। उदाहरण के लिए, आप उपयोग कर सकते हैं python:3.8-slimया python:3.8, और अजगर संकुल जो लिनक्स पहियों को संकलित करने के लिए नहीं होंगे। requirements.txtयदि उपयोग किया जाता है तो ओपी में सूचीबद्ध सभी पैकेज पूर्व संकलित पहियों से स्थापित किए जा सकते हैं python:3.8-slim

तो आप इन कमांड का उपयोग कर सकते हैं

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

यदि आप परिणामी छवि के आकार के बारे में चिंतित हैं, तो आप कैशिंग को अक्षम करने के लिए --no-cache-dirध्वज का उपयोग भी कर सकते हैं pip install

MselmiAli Dec 27 2020 at 05:00

समाधान अल्पाइन-एसडीके को अद्यतन करने के लिए किया गया था, जो एक "मेटा-पैकेज" है जो आवश्यक पैकेज बनाने के लिए उपयोग किए जाने वाले आवश्यक पैकेजों में खींचता है।

apk add --update alpine-sdk

मुझे इसका हल मिला:

गितूब: डॉकटर अल्पाइन मुद्दे