2013-03-14 6 views
12

मुझे यकीन नहीं है कि डिफ़ॉल्ट पायथन स्थापना वह है जिसे मैं मॉड्यूल स्थापित कर रहा हूं, और यदि यह एक विरोधाभासी यूनिकोड बाइट आकार संगतता त्रुटि का कारण हो सकता है। संक्षेप में, मैं Numpy 1.7 स्थापित किया है अजगर 2.7.3 का उपयोग कर और जब मैं इस कार्यक्रम अन्य निर्भरता के रूप में अजगर और Numpy का उपयोग करता है स्थापित करने का प्रयास है, मैं इस त्रुटि मिलती है:संभावित विरोधाभासी पायथन इंस्टॉलेशन

Traceback (most recent call last): 
    File "setup.py", line 20, in <module> 
    from weblogolib import __version__ 
    File "/home/chris/Documents/IS/Bioinformatics-Software/weblogo-3.3/weblogolib/__init__.py", line 108, in <module> 
    from numpy import array, asarray, float64, ones, zeros, int32,all,any, shape 
    File "/usr/lib/python2.7/dist-packages/numpy/__init__.py", line 137, in <module> 
import add_newdocs 
    File "/usr/lib/python2.7/dist-packages/numpy/add_newdocs.py", line 9, in <module> 
from numpy.lib import add_newdoc 
    File "/usr/lib/python2.7/dist-packages/numpy/lib/__init__.py", line 4, in <module> 
from type_check import * 
    File "/usr/lib/python2.7/dist-packages/numpy/lib/type_check.py", line 8, in <module> 
import numpy.core.numeric as _nx 
    File "/usr/lib/python2.7/dist-packages/numpy/core/__init__.py", line 5, in <module> 
import multiarray 
ImportError: /usr/lib/python2.7/dist-packages/numpy/core/multiarray.so: undefined symbol: PyUnicodeUCS4_AsUnicodeEscapeString 

तो मैं मेरे पास एक विरोधी है लगता है यूनिकोड बाइट आकार (2-बाइट बनाम 4-बाइट)। मैं यह देखने के लिए गया कि क्या मेरे पास पाइथन के विरोधाभासी संस्करण हैं जो इसे गड़बड़ कर सकते हैं।

python --version 
Python 2.7.3 

लेकिन इस

which python 
/usr/local/bin/python 

साथ अंतर पर लगता है जब मैं मैं इन फ़ाइलों (अजगर के लिए प्रासंगिक) को खोजने /usr/local/bin पर जाएँ: में

python 
python2 
python2.7 
python-config 
python2-config 
python2.7-config 

अब मैं स्थापित किया है numpy /usr/lib/python2.7/dist-packages की dist-packages निर्देशिका जो python --version के लिए मुझे मिलती है उससे संबंधित है। लेकिन तथ्य यह है कि जब मैं which python का प्रयास करता हूं और python के लिए निर्देशिका प्राप्त करता हूं और python2.7 मुझे चिंता नहीं करता है कि जब मैं प्रोग्राम स्थापित करने का प्रयास करता हूं तो यह निर्भर हो सकता है जो पाइथन और numpy निर्भरता के रूप में उपयोग करता है।

तो मुझे लगता है कि मेरे प्रश्नों को स्पष्ट करना है: क्या ये सामान्य फाइलें पाइथन इंस्टॉलेशन के लिए ढूंढती हैं या क्या मैंने किसी भी तरह से तीन अलग-अलग संस्करण स्थापित किए हैं? क्या वे अपरिचित प्रतीक के साथ मेरी त्रुटि पैदा कर सकते हैं? अगर वे वास्तव में अपरिवर्तनीय संस्करण हैं तो अनइंस्टॉल करने का कोई तरीका है?

आपकी सहायता के लिए धन्यवाद!

ओह और यहाँ .... पिछले एक सवाल मैं था, जहां मैं PYTHONPATH संपादित, एक ImportError मैं हो रही थी ठीक करने की कोशिश करते हुए कहा कि अगर प्रभावित होती हो सकता है के लिए एक लिंक है ImportError: No module named numpy

यहाँ वर्चुअलनेव का प्रयास करने के परिणाम:

[email protected]:~/Documents/IS/Bioinformatics-Software$ virtualenv weblogo-3.3 
New python executable in weblogo-3.3/bin/python 
Installing setuptools.............done. 
Installing pip...............done. 
[email protected]:~/Documents/IS/Bioinformatics-Software$ cd weblogo-3.3 
[email protected]:~/Documents/IS/Bioinformatics-Software/weblogo-3.3$ source bin/activate 
(weblogo-3.3)[email protected]:~/Documents/IS/Bioinformatics-Software/weblogo-3.3$ pip install numpy 
Requirement already satisfied (use --upgrade to upgrade): numpy in /usr/lib/python2.7/dist-packages 
Cleaning up... 
+1

'/ usr/local/bin/python' शायद एक सिम्लिंक है। – wim

उत्तर

11

समस्या वास्तव में अजगर और Numpy सेटिंग्स संकलन की एक बेमेल हो रहा है।

/usr/local/bin वह जगह है जहां कस्टम पायथन स्थापित है, आपको इसके बजाय/usr/bin/python का उपयोग करने की कोशिश करनी चाहिए।

एक और समाधान वर्चुअलनेव का उपयोग करना है। इस प्रयास करें:

virtualenv myproject 
cd myproject 
source bin/activate 
pip install numpy 

मूल रूप से virtualenv ऊपर एक अलग अजगर स्थापना अपने स्वयं के पैकेज के साथ "MyProject" निर्देशिका में निर्धारित करता है। "सक्रिय" आदेश चलाना सिस्टम को बताता है कि आप डिफ़ॉल्ट सिस्टम की बजाय इस स्थापना का उपयोग करना चाहते हैं। यह आपको विभिन्न परियोजनाओं के लिए एक अलग पायथन पर्यावरण देता है। वर्चुअलएन्व का उपयोग करके, प्रत्येक प्रोजेक्ट में पाइथन पैकेज के अपने संस्करण हो सकते हैं भले ही वे अन्य प्रोजेक्ट्स या सिस्टम पैकेज के साथ असंगत हों।

नोट प्रत्येक बार जब आप एक नया खोल खोलते हैं और उस वर्चुअल वातावरण का उपयोग करना चाहते हैं तो आपको "स्रोत" कमांड दोहराना होगा। इसके अलावा आपको अपने ओएस पैकेज मैनेजर का उपयोग करके वर्चुअलएन्व कमांड स्थापित करना पड़ सकता है। यदि यह संभव नहीं है (उदाहरण के लिए आपके पास रूट पहुंच नहीं है) या आपका ओएस संस्करण किसी कारण से बहुत पुराना है, तो आप इसे https://pypi.python.org/packages/source/v/virtualenv/

से मैन्युअल रूप से डाउनलोड भी कर सकते हैं यदि आप ls -l/usr/local/बिन/पायथन * आपको देखना चाहिए कि पाइथन और पायथन 2 वास्तव में python2.7 के लिए सिम्लिंक हैं, और इसी तरह python-config और python2-config python2.7-config में सिम्लिंक हैं।

+0

अरे, उस स्पष्टीकरण के लिए धन्यवाद - मैंने वास्तव में वर्चुअलएन्व का उपयोग करने की कोशिश की थी जब मुझे एहसास हुआ, लेकिन यह पता नहीं लगा कि यह कैसे काम कर रहा है। मैंने 'पाइप इंस्टॉल numpy' की कोशिश की और परिणामों के साथ मेरी मूल पोस्ट संपादित किया। असल में यह अभी भी numpy के पहले स्थापित संस्करण का उपयोग कर रहा है। – user1784467

+0

ठीक है, मैंने अभी 'python setup.py install' की कोशिश की है और यह वर्चुअल पर्यावरण के बाहर के रूप में Numpy की एक ही स्थापना का उपयोग करने के बावजूद, स्पष्ट त्रुटियों के बिना इस बार भाग गया। मुझे लगता है कि यह अब के लिए काम करता है, हालांकि मैं अंततः विरोधाभासी प्रतिष्ठानों को हल करना चाहता हूं यदि वे मौजूद हैं .... लेकिन वैसे भी आपकी मदद के लिए धन्यवाद – user1784467

+3

यदि वर्चुअलएन्व आपके सिस्टम-व्यापी numpy को ढूंढ रहा है, तो "virtualenv --no- साइट-पैकेज myproject "मदद कर सकता है। मेरे लिए, "मैन वर्चुअलनेव" कहता है कि यह विकल्प डिफ़ॉल्ट है, लेकिन यदि आप पुराने संस्करण का उपयोग कर रहे हैं तो यह आपके लिए मामला नहीं हो सकता है। – picomancer

1

आप किस ओएस पर हैं? यह सुपरसियर के लिए एक सवाल है, लेकिन इस तरह कुछ कोशिश करें। easy_install डुबोएं और pip का उपयोग करें यदि आपने पहले से नहीं किया है।

उबंटू पर:

sudo apt-get install python-setuptools 
sudo easy_install pip 
pip install --user numpy 
+0

कहां देखने के लिए 'ls -l/usr/local/bin/python' का उपयोग करें हाँ, मैंने' easy_install' की बजाय 'pip' का उपयोग करने का प्रयास किया लेकिन फिर भी वही समस्या मिली। – user1784467

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