में AWS Lambda के साथ MySQL का उपयोग करने में समस्याएं मैं एडब्ल्यूएस लैम्ब्डा पायथन (पायथन बीटीडब्ल्यू में शुरुआती) के साथ उठने और चलने की कोशिश कर रहा हूं लेकिन MySQL निर्भरता सहित कुछ समस्याएं हैं। मैं अपने मैक पर निर्देश here का पालन करने की कोशिश कर रहा हूं।Python
कदम संख्या 3 के लिए, मैं अपने प्रोजेक्ट की जड़ में आदेश कर के साथ कुछ समस्या हो रही है
sudo pip install MySQL-python -t/
त्रुटि:
Exception: Traceback (most recent call last): File "/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip/basecommand.py", line 122, in main status = self.run(options, args) File "/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip/commands/install.py", line 311, in run os.path.join(options.target_dir, item) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 292, in move raise Error, "Destination path '%s' already exists" % real_dst Error: Destination path '/MySQL_python-1.2.5-py2.7.egg-info/MySQL_python-1.2.5-py2.7.egg-info' already exists
मैं अंत में मेरे निम्नलिखित लैम्ब्डा समारोह (काम करता है लेखन अपने Mac पर) है, जो है ठीक:
import MySQLdb
def lambda_handler(event, context):
# Open database connection
db = MySQLdb.connect(...)
# prepare a cursor object using cursor() method
cursor = db.cursor()
sql = "SELECT * FROM Users"
try:
# Execute the SQL command
cursor.execute(sql)
# Fetch all the rows in a list of lists.
results = cursor.fetchall()
for row in results:
fname = row[0]
lname = row[1]
age = row[2]
sex = row[3]
income = row[4]
# Now print fetched result
print ("lname=%s" %(lname))
except:
print "Error: unable to fecth data"
# disconnect from server
db.close()
मैं पर क्या चला गया करने के लिए /Library/Python/2.7/site-p करने के लिए जाना है Ackages और MySQLdb फ़ोल्डर्स/फ़ाइलों पर प्रतिलिपि बनाते हुए डाउनलोड किए गए थे जब मैंने सुडो पाइप को MySQL-Python (बिना -t /) इंस्टॉल किया था (मुझे यकीन है कि मैं यहाँ कुछ गलत कर रहा हूं), मेरे लैम्ब्डा प्रोजेक्ट में, और फिर ज़िप्ड lambda_function.py के साथ सामग्री और AWS Lambda पर अपलोड किया गया।
तो मैं मिलता है: किसी भी मदद और सुझावों के लिए
Unable to import module 'lambda_function': No module named MySQLdb
आभारी!
संपादित
sudo पिप बनाने स्थापित MySQL-अजगर -t/pathToProject काम (टिप्पणी में सहायता के लिए धन्यवाद) ऐसा करने में सक्षम था, लेकिन अब मैं इस जब लैम्ब्डा समारोह runing:
Unable to import module 'lambda_function': /var/task/_mysql.so: invalid ELF header
मुझे पता है कि अगर मैं एक लिनक्स बॉक्स पर काम करता हूं, तो इसे ठीक काम करना चाहिए (जैसा कि कुछ लोगों द्वारा सुझाया गया है), लेकिन मुझे आश्चर्य है कि क्या मैं इसे ओएस एक्स बॉक्स से काम कर सकता हूं।
'पायथन-सी" आयात sys का उत्पादन क्या है; प्रिंट (sys.path) "'? आप सिस्टम पायथन का उपयोग क्यों कर रहे हैं? क्या आपने होमब्री या मैकपोर्ट के साथ अपने 'usr/local' पथ में कोई इंस्टॉल नहीं किया है? यदि नहीं, तो आपको चाहिए। आपको पाइप के लिए 'सुडो' का उपयोग करने की आवश्यकता नहीं होगी क्योंकि यह आपके अपने उपयोगकर्ता के स्वामित्व में होगा और किसी भी सिस्टम की स्वामित्व वाली फाइलें नहीं बदलेगी। इसके अलावा, यह अजगर से पूरी तरह अलग हो जाएगा कि आपका सिस्टम इस पर निर्भर करता है। यह एक नया संस्करण भी होगा, क्योंकि यह एक भंडार से है। –
यदि आपके पास यह नहीं है, तो 'http: // brew.sh' से 'curl' निर्देश के साथ होमब्रू इंस्टॉल करें और फिर' ब्रू इंस्टॉल पाइथन '' पाइप MySQLdb इंस्टॉल करें 'चलाएं। सत्यापित करें कि आपका पायथन 'python'' चलाकर/usr/local/bin में है - होमब्रे ने सही पाइथन खोजने के लिए '/ usr/local /' में देखने के लिए अपना $ PATH चर सेट किया होगा। –
टिप्पणियों के लिए धन्यवाद, स्थापित करने के लिए होमब्री का उपयोग करेंगे। आपको अपडेट रखेगा (बीटीडब्ल्यू मैं पायथन में एक नौसिखिया हूं, इसलिए मुझे रैंप अप करने में मदद के लिए धन्यवाद) –