2016-04-07 20 views
5

एडब्ल्यूएस लैम्ब्डा पर पाइथन में सेवा पुशर के लिए तैनाती पैकेज बनाने की कोशिश कर रहा है।एडब्ल्यूएस लैम्ब्डा पायथन libssl सी लाइब्रेरी

जब मैं इस

from pusher import Pusher 
def pusherTest(context, event): 
    mypusher = Pusher(app_id=u'***', key=u'***', secret=u'***') 
    mypusher.trigger('testchannel', 'testevent', {u'some': u'data'}) 

मैं इस स्टैक ट्रेस हो रही है की तरह सरल कोड चलाते हैं।

libssl.so.1.0.0: cannot open shared object file: No such file or directory: ImportError 
Traceback (most recent call last): 
    File "/var/task/Lambda.py", line 3, in pusherTest 
    mypusher = Pusher(app_id=u'***', key=u'***', secret='***') 
    File "/var/task/pusher/pusher.py", line 42, in __init__ 
    from pusher.requests import RequestsBackend 
    File "/var/task/pusher/requests.py", line 12, in <module> 
    import urllib3.contrib.pyopenssl 
    File "/var/task/urllib3/contrib/pyopenssl.py", line 54, in <module> 
    import OpenSSL.SSL 
    File "/var/task/OpenSSL/__init__.py", line 8, in <module> 
    from OpenSSL import rand, crypto, SSL 
    File "/var/task/OpenSSL/rand.py", line 12, in <module> 
    from OpenSSL._util import (
    File "/var/task/OpenSSL/_util.py", line 6, in <module> 
    from cryptography.hazmat.bindings.openssl.binding import Binding 
    File "/var/task/cryptography/hazmat/bindings/openssl/binding.py", line 15, in <module> 
    from cryptography.hazmat.bindings._openssl import ffi, lib 
ImportError: libssl.so.1.0.0: cannot open shared object file: No such file or directory 

मेरा मानना ​​है कि libssl एक सी पुस्तकालय है और के बाद से मैं निर्भरता के इन tys स्थापित करने के लिए लैम्ब्डा मशीन के लिए पहुँच नहीं है, मैं कैसे यह काम कर सकता है?

+0

क्या लिनक्स डिस्ट्रो पर आप तैनाती पैकेज बना रहे हैं? – helloV

+0

हाय @jamesmpw, क्या आपने लैम्ब्डा में पुशर का उपयोग किया था? मैंने अमेज़ॅन-लिनक्स में पुशर स्थापित किया है, लेकिन मुझे अभी भी यह समस्या है: "त्रुटि टाइप": "आयात त्रुटि", "त्रुटि संदेश": "कोई मॉड्यूल क्रिप्टोग्राफी नाम नहीं है। Hazmat.bindings.openssl.binding" ', क्या आपके पास यह है इससे पहले समस्या? –

+0

हम्म मुझे याद है कि मुझे याद नहीं है कि मैंने इसे ठीक करने के लिए क्या किया है। क्या आप वर्चुअलएन्व का उपयोग कर रहे हैं? – jamesmpw

उत्तर

2

क्या आप Amazon Linux के अलावा किसी अन्य पर तैनाती पैकेज बना रहे हैं? Amazon Linux

Python Extension Modules in AWS Lambda

+0

विफल रहता है याहू मैं अपने योनि बॉक्स पर पैकेज बना रहा हूं। वाह बहुत दिलचस्प है। ठीक है, मुझे कोशिश करने दो। धन्यवाद। – jamesmpw

+0

वाह ने ऐसा किया। इतना अद्भुत। महीना लंबे सिरदर्द वहाँ। बस आयात त्रुटियों और बाकी सब कुछ के बीच यह सही नहीं हो सका। बहुत बहुत धन्यवाद। क्या आप समझा सकते हैं कि मैं अपने योनि बॉक्स पर वर्चुअलएन्व का उपयोग करके पैकेज क्यों नहीं बना सकता? या यह है कि मैं कर सकता था लेकिन मुझे libssl स्थापित करने की आवश्यकता होगी? – jamesmpw

+0

यह कोई जवाब नहीं है, यह एक अस्पष्ट जादुई चाल का सुझाव है। – fiatjaf

3

में तैनाती पैकेज बनाने का प्रयास करें मैं एक ही समस्या थी और मैं वास्तव में समझने के लिए क्या संकेत यहाँ है मौका मिला था। पालन त्रुटि हमें का कहना है कि पुस्तकालय libssl.so वहाँ नहीं है समाशोधन है ...

ImportError: libssl.so.1.0.0: cannot open shared object file: No such file or directory 

मैं उम्मीद होती है कि यह नहीं है ... आखिर अमेज़न लिनक्स एक linux distro है और libssl होना चाहिए क्या आप वहां मौजूद हैं। लेकिन मुझे नहीं पता ... हो सकता है कि यह लैम्ब्डा फ़ंक्शन से सीधे पहुंच योग्य न हो।

समस्या को हल करने के लिए मैं जिप बंडल

cd /usr/lib64 
zip -u /tmp/lambda.zip libssl.so.1.0.0 

मैं पुन: वितरित में पुस्तकालय जोड़ा गया है और त्रुटि से अलग था। यूरेका!

एक और पुस्तकालय याद किया गया था। Libcrypto। मैंने वही काम किया और अब मेरा लैम्ब्डा फ़ंक्शन अपेक्षित काम कर रहा है

cd /usr/lib64 
zip -u /tmp/lambda.zip libcrypto.so.1.0.0 
+0

धन्यवाद, यही वह है जिसे मैं ढूंढ रहा था। मेरा लैम्ब्डा चल रहा है! – Dan

+0

यह शानदार है! एक फुटनोट के रूप में: मैं miniconda3/envs/xxx/lib/में libssl.so.1.0.0 का पता नहीं लगा सका। लेकिन मैंने इसे/home/ubuntu/miniconda3/lib / – bigdatamann

संबंधित मुद्दे