2011-02-08 24 views
16

मैंने अपने कार्यों में से एक के लिए क्विकफ़िक्स इंजन (http://www.quickfixengine.org/) बनाया और इसके लिए पाइथन समर्थन में भी बनाया। दुर्भाग्यवश यह एक बहु उपयोगकर्ता env है और मुझे ऑयथन स्थापना पथ तक पहुंच नहीं है। इस प्रकार मेक इंस्टॉल कमांड फाइलों पर प्रतिलिपि बनाने की कोशिश करता है और विफल रहता है। मैं उन दो लाइनों पर टिप्पणी करने में कामयाब रहा जहां यह ऐसा करने की कोशिश करता है और मेक इंस्टॉल पूरा हो जाता है। चूंकि मैं वहां फाइल नहीं डाल सकता, इसलिए मैं .so फ़ाइल कहां बना सकता हूं। और मैं पाइथन को कैसे बता सकता हूं कि यह वहां है? मैंने python.ord दस्तावेज़ीकरण को देखा लेकिन यह केवल setup.py संस्थापन के लिए प्रक्रिया का वर्णन करता है। इसके अलावा मैंने sys.path में .so के लिए पथ डालने का प्रयास किया, जिसने काम नहीं किया। एक अजगर पैकेज की शरीर रचना के बारे में भी कोई दस्तावेज है? धन्यवाद। http://docs.python.org/install/index.htmlमैन्युअल रूप से एक पायथन लाइब्रेरी को कैसे स्थापित करें

कुछ सुझाव जो आपकी मदद कर सकते हैं:

+0

"इसके अलावा मैंने sys.path में .so के लिए पथ डालने का प्रयास किया, जिसने काम नहीं किया।"क्या आपने विस्तार के लिए' .so' फ़ाइल के समान निर्देशिका में एक स्क्रिप्ट (या इंटरैक्टिव सत्र) से एक्सटेंशन मॉड्यूल आयात करने का प्रयास किया है? – gotgenes

उत्तर

15

मुझे लगता है कि क्विकफ़िक्स पैकेज को संकलित करने के लिए setup.py फ़ाइल का उत्पादन नहीं होता है, बल्कि केवल पाइथन बाइंडिंग को संकलित करता है और उचित स्थान पर रखने के लिए make install पर निर्भर करता है।

इस मामले में, एक त्वरित और गंदा ठीक, QuickFix स्रोत संकलन अजगर विस्तार मॉड्यूल (आप अपने सिस्टम एक .so विस्तार के साथ इन छोर पर दर्शाया गया है) का पता लगाने, और अपने PYTHONPATH पर्यावरण चर जैसे करने के लिए है कि निर्देशिका जोड़ने के लिए है,

export PYTHONPATH=~/path/to/python/extensions:PYTHONPATH 

या अपनी खोल कॉन्फ़िगरेशन फ़ाइल में समान पंक्ति जोड़ें।

एक और मजबूत समाधान में ./configure --prefix=$HOME/.local के साथ संकलन सुनिश्चित करना शामिल होगा। मान लें कि क्विकफिक्स को पर पाइथन फ़ाइलों को उचित site-packages में रखना है, इसे ~/.local/lib/pythonX.Y/site-packages पर फ़ाइलों को स्थापित करना चाहिए, जो कि पाइथन 2.6+ के लिए, आपके पाइथन पथ पर पहले से ही per-user site-packages directory के रूप में होना चाहिए।

, तो दूसरी ओर, यह एक setup.py फ़ाइल प्रदान किया था, बस पायथन 2.6+ के लिए

python setup.py install --user 

चलाते हैं।

2

यहाँ पायथन मॉड्यूल स्थापित करने पर आधिकारिक पूछे जाने वाले प्रश्न है।

+0

हां, मैंने इसे देखा था। लेकिन मुद्दा यह है कि यह कैसे स्थापित किया जाए कुछ ऐसा जो कि एक पायथन मॉड्यूल के रूप में पैक किया गया था (setup.py का उपयोग करके कुछ स्थापित किया जाना चाहिए)। यह आपको कुछ लाइब्रेरी को इंस्टॉल करने के बारे में नहीं बताता है। इस प्रकार :( –

+0

यहां कुछ अन्य विचार http: // dubroy .com/blog/so-you-want-to-install-a-python-package /। ऐसा लगता है कि आपके लिए समाधान पाइप हो सकता है (http://pypi.python.org/pypi/pip)। –

3

आपको इसे अपने घर फ़ोल्डर में निर्देशिका में स्थापित करने की आवश्यकता है, और किसी भी तरह से PYTHONPATH में हेरफेर करें ताकि निर्देशिका शामिल हो।

वर्चुअलएन्व का उपयोग करना सबसे अच्छा और आसान है। लेकिन इसके लिए इंस्टॉलेशन की आवश्यकता है, जिससे कैच 22 हो जाता है। :) लेकिन जांचें कि वर्चुअलएन्व स्थापित है या नहीं। यह स्थापित किया गया है, तो आप ऐसा कर सकते हैं:

$ cd /tmp 
$ virtualenv foo 
$ cd foo 
$ ./bin/python 

तो फिर तुम बस, हमेशा की तरह स्थापना चला सकते हैं/tmp/foo के साथ/अजगर स्थापित setup.py। (जाहिर है आपको अपने घर निर्देशिका में वर्चुअल वातावरण को/tmp/foo में नहीं करना चाहिए;))

यदि कोई वर्चुअल नहीं है, तो आप अपना खुद का स्थानीय पायथन इंस्टॉल कर सकते हैं। लेकिन इसकी अनुमति भी नहीं दी जा सकती है। तो फिर तुम संकुल के लिए एक स्थानीय निर्देशिका में पैकेज स्थापित कर सकते हैं:

$ wget http://pypi.python.org/packages/source/s/six/six-1.0b1.tar.gz#md5=cbfcc64af1f27162a6a6b5510e262c9d 
$ tar xvf six-1.0b1.tar.gz 
$ cd six-1.0b1/ 
$ pythonX.X setup.py install --install-dir=/tmp/frotz 

अब आप अपने PYTHONPATH को /tmp/frotz/pythonX.X/site-packages जोड़ने की जरूरत है, और आप और चल रहा होना चाहिए!

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