2013-01-01 49 views
16

मैंने अपने उबंटू बॉक्स पर पायथन 2.7.2 के साथ नवीनतम पायरीरियल स्थापित किया है, और यह ज्यादातर चीजों के लिए ठीक काम करता है, लेकिन जब भी मैं 'टूल्स' पैकेज आयात करने का प्रयास करता हूं, तो यह कहता है कि यह कर सकता है 'टूल्स' नहीं ढूंढें। documentation for pySerial स्पष्ट रूप से इस 'उपकरण' पैकेज का संदर्भ देता है।pyserial: उपकरण नाम नहीं किया गया कोई मॉड्यूल

>>> from serial import tools 
Traceback (most recent call last): 
    File "<pyshell#30>", line 1, in <module> 
    import serial.tools 
ImportError: No module named tools 

और जब मैं:

>>> serial.VERSION 
'2.5' 

जो Source Forge

तो क्यों मैं pySerial के 'उपकरण' पैकेज के लिए नहीं मिल सकता के अनुसार नवीनतम संस्करण है?

from serials import tools 

उदाहरण के लिए::

+0

वैसे यह शर्मनाक है! dir() उप-पैकेज सूचीबद्ध नहीं करता है, इसलिए यदि यह वहां भी था, तो बताने का एकमात्र तरीका केवल इसे आयात करने का प्रयास करेगा। अच्छी खबर यह है कि सवाल अभी भी वैध है क्योंकि जब मैं इसे आयात करने का प्रयास करता हूं तो यह वास्तव में एक त्रुटि फेंक देता है। – charmoniumQ

उत्तर

19

स्थापित करने के लिए pip का उपयोग करें। कि pyserial स्थापित करने के बाद

sudo apt-get install python-pip 

:: सबसे पहले पिप स्थापित

sudo pip install pyserial 
+7

संभवतः आप मेरे लिए 'सूडो पाइप स्थापित करने के लिए मतलब है - अपग्रेड' – charmoniumQ

+0

बहुत बढ़िया, धन्यवाद! मैंने यह जवाब देखने से पहले सब कुछ करने की कोशिश की। –

+0

क्या यह वही काम करने के लिए कोई तरीका है लेकिन खिड़कियों के साथ? धन्यवाद। –

-1

आपने मॉड्यूल का कार्य इस तरह से कॉल करनी होगी मैं math मॉड्यूल से sqrt समारोह कॉल करना चाहते हैं, तो मुझे क्या करना होगा:

from math import sqrt 

import math.sqrt **is wrong.** 
+0

उपकरण एक फ़ंक्शन नहीं है, यह एक पैकेज है, और सैम की कोशिश कर रहा है के रूप में आयात किया जा सकता है .. पैकेज में केवल मॉड्यूल और खाली '__init __। Py' है, इसलिए उसे कुछ भी उपयोग करने के लिए अधिक आयात करना होगा, लेकिन इसे अपवाद को उठाए बिना कभी कम सफल नहीं, जब तक उबंटू पैकेज अपस्ट्रीम से मेल खाता है (जो यह नहीं करता है, मेरा जवाब देखें) – SingleNegationElimination

+0

पाइसरियल स्थापित करने के लिए पीआईपी का उपयोग करें। सबसे पहले पायथन पाइप स्थापित करें: सूडो एपीटी-पाइथन-पीआईपी स्थापित करें और फिर पाइसरियल स्थापित करें: सुडो पाइप पेसरियल – user1881957

1

ऐसा लग रहा है उबंटू पैकेज अपस्ट्रीम के साथ काफी मेल नहीं खाता है। भी

http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/raring/pyserial/raring/files/head:/serial/

उपकरण वहाँ याद आ रही है,: लॉन्चपैड में

http://pyserial.svn.sourceforge.net/viewvc/pyserial/trunk/pyserial/serial/

ubuntu पैकेज के लिए

: उनके SVN पर आधिकारिक pySerial पैकेज की तुलना करें। ऐसा लगता है कि वे miniterm.py स्क्रिप्ट रखते हैं, और इसे इंस्टॉल करें ... कहीं कहीं; हालांकि, मुझे समझने के लिए डेब पैकेजिंग में पर्याप्त जानकारी नहीं है।

+0

क्या आप उबंटू रेपो संस्करण को अनइंस्टॉल करने के बारे में और कुछ जगहों पर, अपस्ट्रीम स्रोत फोर्ज स्थापित करने के बारे में थोड़ा और विवरण दे सकते हैं संस्करण? – charmoniumQ

1

मैं यहाँ मिल गया है क्योंकि मैं एक ही समस्या थी। अजीब बात यह है कि

import serial 

काम किया था, लेकिन

from serial.tools import list_ports 

नहीं किया।

बेवकूफ मुझे "serial.py" स्क्रिप्ट नामित करता है। सब कुछ काम करने के बाद यह सब कुछ काम किया।

0

हाँ, उपयोग अजगर-पिप स्थापित ,,, तो ,,, अपग्रेड ,,, धारावाहिक के संस्करण 2.7 हो जाएगा ... यह workes

0

शायद ज़रुरत पड़े कि "कर रही --upgrade स्थापित पिप" काम नहीं करता है (जैसा कि मेरे साथ हुआ), लिनक्स में आप देख सकते हैं कि आपके पास /usr/lib/python2.7/dist-packages में एक सीरियल पैकेज है, तो नया धारावाहिक उस पैकेज को पैक करता है जो पीआईपी इंस्टॉल /usr/**local**/lib/python2.7/dist-packages/serial पर जाता है, किसी कारण से usr/lib/python2.7/ में एक प्राथमिकता और मॉड्यूल है उपकरण pyserial के उस संस्करण में मौजूद नहीं है। नाम बदलना या निर्देशिका को हटाने से समस्या हल हो जाती है।

1

साइट-पैकेज फ़ोल्डर में pyserial-2.4-py2.7.egg साइट-पैकेज फ़ोल्डर में धारावाहिक के बजाय आयात किया जा रहा था। एक बार जब मैंने इस फ़ाइल का नाम बदल दिया ताकि यह अब से आयात न हो, यह ठीक काम करता है।

import serial 
serial._ _path_ _ 

यह देखने के लिए कि सीरियल कहां से आयात किया जा रहा है, आप इसे आसानी से डीबग कर सकते हैं।