2012-06-25 36 views
10

बस एक त्वरित सवाल है, मैं पाइथन में तीसरे पेरी मॉड्यूल को पहचानने के लिए कैसे पाइप प्राप्त करूं? उदाहरण के लिए, मुझे निम्न त्रुटि मिलती है।तीसरे पक्ष के मॉड्यूल को पहचानने के लिए पापी प्राप्त करना

from tables import * 
ImportError: No Module named tables 

कौन सा मूल रूप से कह रहा है कि यह मेरी pytables पुस्तकालय है कि मैं पटकथा में मैं चलाने के लिए कोशिश कर रहा हूँ के साथ बातचीत करने के लिए उपयोग नहीं मिल रहा।

उत्तर

7

शुद्ध अजगर मॉड्यूल के लिए, बस अपने sys.path के लिए निर्देशिका मॉड्यूल युक्त जोड़ने के लिए, की तरह कुछ का उपयोग कर:

sys.path.insert(0, '/usr/local/lib') 
sys.path.insert(0, os.path.expanduser('~/lib')) 

यह CPython, PyPy और Jython के लिए काम करता है।

सी विस्तार मॉड्यूल के लिए, आप PyPy के cpyext कोशिश कर सकते हैं, लेकिन यह सब कुछ आप के लिए आशा है कि हो सकता है नहीं चलेगा, क्योंकि कुछ CPython सी विस्तार मॉड्यूल CPython के सी-आधारित क्रम के अंधेरे कोनों में भटकना: http://morepypy.blogspot.com/2010/04/using-cpython-extension-modules-with.html

मैं कभी-कभी कोड लिखता हूं जो सीएसओ के साथ इंटरफेस करने के लिए सीटीपीएस का उपयोग करता है, और उसके बाद दोनों सीपीथॉन और पायपी पर इसका उपयोग करता है, क्योंकि वे दोनों सीटीपीएस के साथ बहुत अच्छी तरह से करते हैं - लेकिन सीटीपीपी सीपीथॉन पर थोड़ी धीमी हो सकती है: http://docs.python.org/library/ctypes.html आखिरी बार मैंने चेक किया, ज्योथन की प्राप्तियां थीं, लेकिन कम से कम मेरे उद्देश्यों के लिए उपयोग करने के लिए पर्याप्त नहीं था।

एक नया इंटरफ़ेस भी है जिसके लिए रनटाइम पर सी कंपाइलर की आवश्यकता होती है। यह सीटीपीएस की तुलना में कम भंगुर (पढ़ा: सेगफाल्ट से प्रवण) होने की संभावना है। यह यहां वर्णित है: http://morepypy.blogspot.com/2012/06/release-01-of-cffi.html यह मेरे द्वारा विश्वास की जाने वाली पापी परियोजना से आता है, लेकिन इसे पहले सीपीथन पर काम करने के लिए बनाया गया था। AFAIK, यह अभी तक पापी पर नहीं चला है।

5

पिपी के पास एक अलग इंस्टॉल स्थान है। इसलिए, आप जो भी मॉड्यूल पीपीपीआई से स्थापित करना चाहते हैं उसे अपनी जगह में स्थापित किया जाना चाहिए। तो, उदाहरण के लिए, मैंने /usr/local/pypy-1.9-32bit

में पाइप स्थापित किया है, मैं पाइप या easy_install का उपयोग करने की सलाह देता हूं। यहाँ पिप स्थापित करने के लिए कैसे, लेकिन distribute_setup.py के लिए नए लिंक मिल जाने की आवश्यकता है:

curl DEAD_LINK /distribute_setup.py | /usr/local/pypy-1.9-32bit/bin/pypy 
curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | /usr/local/pypy-1.9-32bit/bin/pypy 

फिर, बस मॉड्यूल पाने के लिए नव स्थापित पिप का उपयोग करें: इस मामले में

sudo /usr/local/pypy-1.9-32bit/bin/pip install tables 

, यह निम्नलिखित त्रुटि के साथ विफल,:

[email protected]:/tmp$ sudo /usr/local/pypy-1.9-32bit/bin/pip install tables 
Downloading/unpacking tables 
    Downloading tables-2.4.0.tar.gz (8.9Mb): 8.9Mb downloaded 
    Running setup.py egg_info for package tables 
    .. ERROR:: You need numpy 1.4.1 or greater to run PyTables! 
    Complete output from command python setup.py egg_info: 
    .. ERROR:: You need numpy 1.4.1 or greater to run PyTables! 

स्थापना इस मामले में विफल रहा है, क्योंकि टेबल्स Numpy, जो अभी तक PyPy द्वारा समर्थित नहीं है पर निर्भर करता है (हालांकि वे इस पर काम कर रहे हैं, http://pypy.org/numpydonate.html देखना)। हालांकि, कई पायथन मॉड्यूल के लिए, यह विधि बहुत अच्छा काम करती है। उदाहरण के लिए, मैंने इस तरह से लॉगिलैब बाधा पैकेज सफलतापूर्वक स्थापित किया है।

+0

http://python-distribute.org को एक लिंक फार्म द्वारा लिया गया है, और सेटअपटॉल्स को शायद वैसे भी इस्तेमाल किया जाना चाहिए। –

3

सी: \ Python27 \ Lib से C: \ pypy-2.3.1-win32 \ lib-python या जहां आपने उन्हें इंस्टॉल किया है उसके समकक्ष मॉड्यूल के लिए फ़ोल्डर कॉपी करें।

जाहिर है, यह केवल विंडोज पर काम करेगा।

+0

मैंने इसे लगभग ध्वजांकित किया क्योंकि आपने "मुझे यह समस्या भी है ..." से शुरू किया। बस जवाब दें। न कुछ ज्यादा, न कुछ कम। हालांकि पहले खराब पोस्ट नहीं! – BradleyDotNET

+0

(आपने इसे संपादित किया है, आपकी सलाह और यहां तक ​​कि कुछ प्रोत्साहन भी दिया है - वास्तव में एक बहुत ही उपयोगी उत्तर के लिए। लेकिन आपको "खतरे" के बारे में क्या सटीक उद्देश्य लगता है? यह ध्वज-लहराव पूरी तरह से अनावश्यक और नौसिखिया को डराता है। आप शायद यह जानते हैं। मैं निश्चित रूप से, नौसिखिया होने के नाते करता हूं।) –

3

जैसा कि अन्य उत्तरों में बताया गया है, pypy में स्थापित मॉड्यूल के लिए एक अलग स्थान है।

  • डाउनलोड स्रोत (जैसे एक *.tar.gz फ़ाइल के रूप में)
  • निकालने, cd निकाले निर्देशिका में
  • रन pypy setup.py install (कभी कभी आप की जरूरत: मैं सबसे आसान तरीका है PyPy के लिए एक मॉड्यूल को जोड़ने के लिए है, तो निम्न को खोजें sudo को प्रीपेड करने के लिए)
+0

मैंने ऐसा किया, यह सफलतापूर्वक lib स्थापित किया गया लेकिन मुझे एक मॉड्यूल के लिए फिर से त्रुटियां मिल रही हैं जो मैंने पायथन कोड में आयात की है – curious

1

वास्तव में, जब आप pypy इंस्टॉल करते हैं तो pip_pypy होता है। यहां देखें:

screenshot

फिर pip_pypy के साथ तीसरा मॉड्यूल स्थापित करें।