2013-07-04 18 views
14

मैंने पायथन 2.7.5 स्थापित किया जो ठीक काम कर रहा है।आयात त्रुटि: twisted.internet नामक कोई मॉड्यूल

मैं फिर स्केपर स्थापित करता हूं (जो, मुझे लगता है, आंतरिक रूप से मुड़ता है)। मेरा स्केपर मकड़ी भी ठीक काम कर रहा है। तब

sudo apt-get install python-twisted

, मैं एक नमूना कार्यक्रम बनाया इको सर्वर कोड से पता चला here

यहाँ कोड

from twisted.internet import protocol, reactor 


class Echo(protocol.Protocol): 
    def dataReceived(self, data): 
     self.transport.write(data) 

class EchoFactory(protocol.Factory): 
    def buildProtocol(self, addr): 
     return Echo() 

reactor.listenTCP(1234, EchoFactory()) 
reactor.run() 

उपयोग कर रहा है मैं का उपयोग कर इस कोड को चलाने का प्रयास:

मैं मुड़ स्थापित यह आदेश:

$ python twistedTester.py 
Traceback (most recent call last): 
    File "twistedTester.py", line 1, in <module> 
    from twisted.internet import protocol, reactor 
ImportError: No module named twisted.internet 

क्या कोई मेरी मदद कर सकता है कि मैं कैसे डिबग कर सकता हूं कि मेरे ट्विस्ट पैकेज को पायथन इंस्टॉलेशन द्वारा क्यों नहीं उठाया जा रहा है?

+0

'कौन सा पायथन' चलाने का प्रयास करें - यह आपको क्या बताता है? 'Python2.7' के बारे में क्या? 'पायथन-सी" आयात मोड़ के बारे में कैसे; प्रिंट (मुड़) "'? क्या आपके पास शायद 'sys.path' पर' twisted.py' नामक एक फ़ाइल है? – Glyph

उत्तर

9

मुझे पता चला कि यह त्रुटि क्यों हो रही थी। किसी कारण से, एक पाइथन पैकेज स्थापित करने के लिए apt-get का उपयोग करके इसे सही इंस्टॉल नहीं किया जा रहा था।

तो, मुझे एक टैर बॉल डाउनलोड करना था और पैकेज से उन्हें इंस्टॉल करना था।

मैंने here से ट्विस्ट टैर डाउनलोड किया।

मैं एक tar xjf Twisted-13.1.0.tar.bz2 किया - यह एक निर्देशिका मुड़-13.1.0

अगले, अंत में cd Twisted-13.1.0 कहा जाता है, बनाया python setup.py install

यह मैं एक त्रुटि दे दी है। मुड़ने के लिए zope.interface नामक एक और पैकेज की आवश्यकता है। इसलिए, मैंने here से zope.interface के लिए टैर बॉल डाउनलोड किया। फिर, इस आदेश को tar xzf zope.interface-3.6.1.tar.gz चलाया जिसने zope.interface-3.6.1 नामक फ़ोल्डर बनाया। तो, zope.interface-3.6.1 में सीडी और चलाने python setup.py install

नोट: आपके उपयोगकर्ता के अधिकार के आधार पर आप sudo मोड में इन आदेशों क्या करना चाहते हो सकता है। बस प्रत्येक कमांड से पहले कीवर्ड सूडो जोड़ें।

+4

'apt-get install python-twisted' आमतौर पर हमेशा काम करता है। यदि ऐसा नहीं होता है, तो आपको अपनी डिस्ट्रो टीम (या तो डेबियन या उबंटू, ऐसा लगता है) को एक विस्तृत बग रिपोर्ट भेजनी चाहिए ताकि वे इसे ठीक कर सकें। यद्यपि "इसे सही इंस्टॉल नहीं करने" की तुलना में अधिक विस्तार की आवश्यकता होगी। –

+1

sudo python setup.py इंस्टॉल – gbk

+1

आदमी आपने अपना दिन बचाया:] –

0

मुझे पता चला कि क्यों apt-get install python-twisted पर्याप्त नहीं था या "इसे सही इंस्टॉल करना" जैसा आपने कहा, user1700184।

मैं डेबियन व्हीज़ी और पायथन 2.7 का उपयोग करता हूं।

मैं सिर्फ /usr/lib/python2.7/dist-packages/ से करने के लिए /usr/lib/python2.7/

एक ही पैकेज "zope" और किसी भी अन्य एक है कि आप स्थापित है, लेकिन प्राप्त नहीं होता है जब आप की कोशिश के साथ किया जा सकता है फ़ोल्डर "मुड़" नाम स्थानांतरित करने के लिए किया था अपना कोड चलाएं

हालांकि, क्यों यह मेरे मामले में भी आवश्यक है अब भी मेरे sys.path के बाद से एक रहस्य /usr/lib/python2.7/ और /usr/lib/python2.7/dist-packages दोनों है, तो जो कुछ भी dist-packages के तहत किया गया दुभाषिया के द्वारा प्राप्त किया जाना चाहिए था शामिल नहीं है।

+2

'/ usr' में पैकेज को स्थानांतरित न करें। आपके सिस्टम पर कुछ टूटा हुआ है; यह डेबियन में एक बग है। कृपया बग की रिपोर्ट करें। – Glyph

9

आप pip का उपयोग करते हैं तो बस कोशिश:

pip install twisted 

w3lib और lxml के साथ एक ही काम करता है।

कुछ * निक्स सिस्टम पर यह आपको अनुमति त्रुटि दे सकता है। यदि ऐसा होता है, तो प्रयास करें:

sudo -H pip install twisted 
+1

यह मैक ओएस एक्स पर भी मेरे लिए काम करता है, यह कह सकता है कि "त्रुटि 1: अनुमति अस्वीकृत" जब तक सूडो का उपयोग नहीं किया जाता है। "सूडो पाइप स्थापित मोड़" –

+0

यह मेरे लिए काम नहीं किया http://pastebin.com/N7czaF5k –

0

यह भी मेरे साथ हुआ। आखिरकार मुझे पता चला कि मेरी वर्तमान कार्यशील निर्देशिका twisted.py नाम की एक फ़ाइल है। मैंने twisted.py और twisted.pyc हटा दिया। समस्या का समाधान हुआ।

5

कृपया फ़ाइल को twisted.py किसी अन्य चीज़ का नाम बदलें। जब भी आप किसी फ़ाइल से फ़ंक्शन आयात करते हैं तो दुभाषिया वर्तमान स्थान में फ़ाइल की खोज करेगा और फिर यह लाइब्रेरी में खोज करेगा। इसलिए यदि आपके पास "twisted.py" के नाम पर कोई फ़ाइल है तो आपको शायद इसका नाम बदलना चाहिए।

नाम बदलने के बाद। इसे फिर से चलाने से पहले twisted.pyc फ़ाइल को हटाने में विफल न करें।

0

मुझे लगता है कि यह ध्यान देने योग्य है कि यदि आप पाइथन लॉन्च करने के लिए सुडो का उपयोग करते हैं तो आप अपने मूल डिफ़ॉल्ट सिस्टम पायथन का उपयोग कर रहे हैं। यह पायथन है कि आपके PATH अंक हैं। उदाहरण के लिए यदि आप एनाकोंडा का उपयोग कर रहे हैं और आपने अपना रास्ता अपडेट किया है जैसे कि which python अंक path/to/anaconda/bin/python, sudo which python अभी भी usr/bin/python पर इंगित करेगा।

तो स्पष्ट रूप से sudo python twistedTester.py मुड़ मॉड्यूल नहीं मिलेगा। इसके आस-पास पहुंचने के लिए आपको एनाकोंडा पायथन के पथ को स्पष्ट रूप से पास करना चाहिए। इस तरह:

sudo path/to/anaconda/bin/python twistedTester.py 
संबंधित मुद्दे