Python2 के लिए आधिकारिक समर्थन कुछ महीने पहले समाप्त हो गया था, लेकिन मुझे अपने एक प्रोग्राम को चलाने के लिए इसकी आवश्यकता है और इसे ubuntu 20.04 रिपॉजिटरी से भी हटा दिया गया है। इसलिए मैं खुद python2 को संकलित और स्थापित करना चाहता था। लेकिन समापन चरणों में make all(वास्तव में setup.py build में), यह निम्न त्रुटि प्रिंट करता है:

Python build finished, but the necessary bits to build these modules were not found:
_bsddb             _sqlite3           _ssl            
_tkinter           bsddb185           bz2             
dbm                dl                 gdbm            
imageop            readline           sunaudiodev     
To find the necessary bits, look in setup.py in detect_modules() for the module's name.

मुझे readline या _tkinter जैसे कुछ मॉड्यूल की परवाह नहीं है, लेकिन मुझे _ssl की आवश्यकता है। इसे pip के माध्यम से स्थापित करना संभव नहीं है।
मैंने रिपोजिटरी से libssl-dev स्थापित किया लेकिन फिर से निर्माण के बाद निम्न त्रुटि हुई:

Failed to build these modules:
_hashlib           _ssl

किसी भी मदद की सराहना की जाती है।
धन्यवाद।

2
Parsa Mousavi 31 मार्च 2020, 14:22

1 उत्तर

सबसे बढ़िया उत्तर

ईमानदारी से कहूं तो मैं इसे संकलित करने की कोशिश करने के बजाय Python2 के लिए एक डॉकर छवि का उपयोग करना पसंद करूंगा; कुछ के लिए अधिक हो सकता है लेकिन मेरे लिए यह आसान और साफ तरीका है।

उदाहरण के लिए यदि आपके पास एक project फ़ोल्डर है, जिसमें कम से कम project.py और requirements.txt हैं, तो आप निम्न Dockerfile (project के समान फ़ोल्डर में) का उपयोग कर सकते हैं:

FROM python:2.7-slim-buster

COPY /project /app
RUN pip install --no-cache-dir -r /app/requirements.txt

WORKDIR /app

CMD [ "python", "project.py" ]

इसे docker build -t project . के साथ बनाएं

इसे docker run -it --rm --name project_run project के साथ चलाएं

आपका आवेदन कितना जटिल है, इस पर निर्भर करते हुए आप इसे अद्यतित करने का भी प्रयास कर सकते हैं ताकि यह पायथन 3 पर चले (इसमें आपकी सहायता के लिए स्वचालित उपकरण भी हैं)।

0
Ionut Ticus 31 मार्च 2020, 12:25