कुछ आवश्यकताओं को स्थापित नहीं कर सकता
मैं यह पता नहीं लगा सकता कि कब आवश्यकताओं से मेरे अजगर निर्भरता स्थापित कर रहे हैं।
आवश्यकताएँ। सामग्री:
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
कुछ स्क्रीनशॉट लें:
जवाब
अल्पाइन लिनक्स मसल सी का उपयोग करता है, लेकिन अधिकांश पायथन व्हील फाइलें ग्लिब सी के लिए संकलित की जाती हैं। इसलिए, ऐसे पैकेज जिनमें सी / सी ++ में लिखित एक्सटेंशन संकलित किए जाने की आवश्यकता है। यदि आपके पास संकलक स्थापित नहीं है, तो आपको एक त्रुटि मिलेगी।
एक संकलक और निर्भरता स्थापित करने के बजाय जो संकुल को संकलन के समय की आवश्यकता हो सकती है, मैं सुझाव देता हूं कि एक अजगर डोकर छवि का उपयोग करें जो अल्पाइन पर आधारित नहीं है। उदाहरण के लिए, आप उपयोग कर सकते हैं 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
।
समाधान अल्पाइन-एसडीके को अद्यतन करने के लिए किया गया था, जो एक "मेटा-पैकेज" है जो आवश्यक पैकेज बनाने के लिए उपयोग किए जाने वाले आवश्यक पैकेजों में खींचता है।
apk add --update alpine-sdk
मुझे इसका हल मिला:
गितूब: डॉकटर अल्पाइन मुद्दे