2010-12-09 12 views
5

आज पीआईएल का उपयोग करने वाली पाइथन लिपि लिखने की कोशिश करने की प्रक्रिया में, मुझे पता चला कि मुझे यह मेरी स्थानीय मशीन (ओएस एक्स 10.5.8, डिफ़ॉल्ट 2.5 पायथन इंस्टॉल) पर नहीं लगता है।मैं स्थानीय पायथन लाइब्रेरी निर्देशिका/पायथनपैथ कैसे स्थापित करूं?

तो मैं चलाएँ:

easy_install --prefix=/usr/local/python/ pil 

और यह /usr/local/python/lib/python2.5/site-packages अभी तक मौजूदा नहीं के बारे में थोड़ा शिकायत करता है, तो मैं इसे बनाने के लिए, और फिर कोशिश करें, और इस मिल:

TEST FAILED: /usr/local/python//lib/python2.5/site-packages does NOT support .pth files error: bad install directory or PYTHONPATH

You are attempting to install a package to a directory that is not on PYTHONPATH and which Python does not read ".pth" files from. The installation directory you specified (via --install-dir, --prefix, or the distutils default setting) was:

/usr/local/python//lib/python2.5/site-packages 

and your PYTHONPATH environment variable currently contains:

'' 

ठीक है, निष्पक्ष पर्याप्त - मैं नहीं पथ सेट करने के लिए कुछ भी नहीं किया था। तो मैं एक त्वरित पंक्ति जोड़ने के लिए ~/.bash_profile:

PYTHONPATH="$PYTHONPATH:/usr/local/python/lib/python2.5"

और यह source, और फिर कोशिश करें।

वही त्रुटि संदेश।

यह दयालु है, यह देखते हुए कि PythonPATH स्पष्ट रूप से सेट है; मैं echo $PYTHONPATH कर सकता हूं और :/usr/local/python/lib/python2.5 वापस प्राप्त कर सकता हूं। मैं क्या शामिल पथ अंदर से की तरह देखा की जाँच करने का निर्णय लिया:

import sys 
print "\n".join(sys.path) 

जो पैदावार:

/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python25.zip /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5 /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-darwin /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-mac /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-mac/lib-scriptpackages /System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload /Library/Python/2.5/site-packages /System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/PyObjC

जहाँ से /usr/local/python/yadda/yadda विशेष रूप से याद आ रही है।

यह सुनिश्चित नहीं है कि मुझे यहां क्या करना है। पथ को शामिल करने के रूप में इस स्थान को पहचानने के लिए मुझे पाइथन कैसे मिल सकता है?

अद्यतन

के रूप में स्वेन Marnach सुझाव दिया, मैं PYTHONPATH निर्यात करने की उपेक्षा की गई थी। मैंने उस समस्या को सही कर दिया है, और अब जब मैं पाइथन के भीतर से sys.path प्रिंट करता हूं तो यह दिखाता है। हालांकि, मुझे अभी भी ऊपर वर्णित TEST FAILED त्रुटि संदेश मिला है, बस मेरे नए पायथनपैथ पर्यावरण चर के साथ।

तो, मैंने इसे /usr/local/python/lib/python2.5 से /usr/local/python/lib/python2.5/site-packages, निर्यात करने और उसी easy_install आदेश को फिर से चलाने की कोशिश की। यह एक सभी नए नतीजा यह है कि पहले पर सफलता की तरह देखा की ओर जाता है (लेकिन है नहीं):

Traceback (most recent call last):
File "checkerboard.py", line 1, in import Image, ImageDraw ImportError: No module named Image

:

Creating /usr/local/python/lib/python2.5/site-packages/site.py 
Searching for pil 
Reading http://pypi.python.org/simple/pil/ 
Reading http://www.pythonware.com/products/pil 
Reading http://effbot.org/zone/pil-changes-115.htm 
Reading http://effbot.org/downloads/#Imaging 
Best match: PIL 1.1.7 
Downloading http://effbot.org/media/downloads/PIL-1.1.7.tar.gz 
Processing PIL-1.1.7.tar.gz 
Running PIL-1.1.7/setup.py -q bdist_egg --dist-dir /var/folders/XW/XWpClVq7EpSB37BV3zTo+++++TI/-Tmp-/easy_install-krj9oR/PIL-1.1.7/egg-dist-tmp--Pyauy 
--- using frameworks at /System/Library/Frameworks 
[snipped: compiler warnings] 
-------------------------------------------------------------------- 
PIL 1.1.7 SETUP SUMMARY 
-------------------------------------------------------------------- 
version  1.1.7 
platform  darwin 2.5.1 (r251:54863, Sep 1 2010, 22:03:14) 
       [GCC 4.0.1 (Apple Inc. build 5465)] 
-------------------------------------------------------------------- 
--- TKINTER support available 
--- JPEG support available 
--- ZLIB (PNG/ZIP) support available 
*** FREETYPE2 support not available 
*** LITTLECMS support not available 
-------------------------------------------------------------------- 
To add a missing option, make sure you have the required 
library, and set the corresponding ROOT variable in the 
setup.py script. 

To check the build, run the selftest.py script. 
zip_safe flag not set; analyzing archive contents... 
Image: module references __file__ 
No eggs found in /var/folders/XW/XWpClVq7EpSB37BV3zTo+++++TI/-Tmp-/easy_install-krj9oR/PIL-1.1.7/egg-dist-tmp--Pyauy (setup script problem?) 

फिर, यह अच्छा लग रहा है, लेकिन जब मैं अपने स्क्रिप्ट चलाने के लिए जाना

जब मैं जाँच क्या /usr/local/python/find . का उपयोग कर के तहत अब है, मैं मिलता है:

./lib ./lib/python2.5 ./lib/python2.5/site-packages ./lib/python2.5/site-packages/site.py ./lib/python2.5/site-packages/site.pyc

तो ... कुछ भी नहीं मॉड्यूल दिखने (मैं यह सोचते हैं रहा हूँ site.py और site.pyc मेटाडेटा या सहायक स्क्रिप्ट हैं)। इंस्टॉल कहां गया?

मैं इस पर ध्यान दें:

To check the build, run the selftest.py script.

लेकिन वास्तव में यह है कि क्या है पता नहीं है।

और मैंने यह भी देखा कि "कोई अंडे नहीं मिला" संदेश। क्या इनमें से कोई संकेत हैं?

+1

क्या आपने 'पायथनपथ' निर्यात किया था? इसे एक खोल चर के रूप में बस सेट करने में मदद नहीं करता है। 'PYTHONPATH = "$ PYTHONPATH निर्यात करें: /usr/local/python/lib/python2.5"' और 'env' का उपयोग करके जांचें कि यह वास्तव में पर्यावरण को निर्यात किया जाता है। –

+0

हू। ठीक है, मुझे निश्चित रूप से खोल/पर्यावरण चर और 'एनवी' और' निर्यात' और 'स्रोत' जैसे कमांड को समझने के लिए एक अच्छे प्राइमर के लिए सुझावों की आवश्यकता है। मैं खुशी से सुझाव लेता हूँ। यह समस्या का केवल एक हिस्सा है, हालांकि ... अब मैंने स्वेन के सुझावों का पालन किया है, पथ 'sys.path' में पहचाना जा रहा है, लेकिन मुझे अभी भी' परीक्षण विफल 'संदेश आसान इंस्टॉल से प्राप्त हो रहा है । मैं इसे प्रतिबिंबित करने के लिए अपना प्रश्न अपडेट करूंगा। –

उत्तर

4

आप ओएस एक्स में ऐप्पल-आपूर्ति पायथन 2.5 का उपयोग कर रहे हैं; यह एक ढांचा निर्माण है और, डिफ़ॉल्ट रूप से, /Library/Python/2.5/site-packages को स्थापित संकुल के स्थान के रूप में उपयोग करता है, /usr/local नहीं। आम तौर पर आपको ओएस एक्स ढांचे के निर्माण के साथ --prefix निर्दिष्ट करने की आवश्यकता नहीं है। यह भी सावधान रहें कि setuptools (easy_install) ओएस एक्स 10.5 के साथ ऐप्पल द्वारा आपूर्ति की गई है, बल्कि पाइथन के संस्करण के रूप में पुरानी है।

उस ने कहा, PIL ओएस एक्स पर पूरी तरह से और सही ढंग से स्थापित करना विशेष रूप से ओएस एक्स 10.5 विशेष रूप से सरल नहीं है। युक्तियों और/या बाइनरी पैकेज के लिए अभिलेखागार या अन्यत्र खोजें। विशेष रूप से यदि आप MySQL या Django जैसे अन्य मॉड्यूल का उपयोग करने की योजना बना रहे हैं, तो मेरी सिफारिश MacPorts जैसे पैकेज मैनेजर का उपयोग करके सब कुछ (पायथन और पीआईएल) स्थापित करना है।

1

आपने अपने easy_install आमंत्रण में --prefix निर्दिष्ट क्यों किया? कि आप सिर्फ कोशिश:

sudo easy_install pil 

आप केवल डिफ़ॉल्ट स्थान के लिए जनहित याचिका को स्थापित करने की कोशिश कर रहे हैं, मैं easy_install सही पथ बाहर काम कर सकता लगता होगा। (जाहिर है, /usr/local/python यह नहीं है ...)

संपादित: किसी इस जवाब नीचे वोट दिया है, हो सकता है, क्योंकि यह बहुत संक्षिप्त था। मुझे लगता है कि मुझे अपने सेल फोन से जवाब पोस्ट करने का प्रयास करने के लिए यही मिलता है। लेकिन इसका सारांश पूरी तरह से मान्य है, IMHO: यदि आप के साथ एक कस्टम इंस्टॉल स्थान निर्दिष्ट करने के लिए --prefix का उपयोग कर रहे हैं, तो आप 'गलत कर रहे हैं' की तरह हैं। यह काम करने के लिए संभव हो सकता है, लेकिन easy_install प्रलेखन में custom installation locations पर एक अनुभाग है जो virtual python विकल्प पर एक छोटे से ट्विक के अलावा इसे एक संभावना के रूप में भी उल्लेख नहीं करता है। यदि आप मैक पर कस्टम स्थान पर स्थापित करना चाहते हैं, तो OS X instructions का पालन करने का सुझाव देना होगा, --prefix बस नौकरी के लिए सही टूल की तरह प्रतीत नहीं होता है।

+1

मैं आम तौर पर उन संकुल/पुस्तकालयों को रखना पसंद करता हूं जो डिफ़ॉल्ट इंस्टॉल के साथ आते हैं जिन्हें मैं इंस्टॉल करता हूं, विशेष रूप से यदि यह सामान है तो मैं नया हूं, और आमतौर पर ऐसा करने के लिए काफी व्यावहारिक है। यदि यह पाइथन के साथ व्यावहारिक से कम हो जाता है, तो शायद मैं इस विचार को छोड़ दूंगा। –

+1

@WestonC, आपकी ज़रूरतों के आधार पर, आप 'वर्चुअलनव] (http://virtualenv.readthedocs.org/en/latest/) का उपयोग करके बेहतर ढंग से सेवा कर सकते हैं ताकि' आपके 'पायथन मॉड्यूल सिस्टम-स्थापित मॉड्यूल से अलग हो सकें। यदि आप वर्चुअलएनवी के भीतर से 'python setup.py install' करते हैं तो संकुल का विशाल बहुमत ठीक है। उन संकुलों (जैसे पीईक्यूटी) के लिए जो वर्चुअलएन्व के साथ अच्छा नहीं खेलते हैं, आप लगभग हमेशा इस तरह के एक हैक का उपयोग करके इस काम को [इस उत्तर] में वर्णित कर सकते हैं (http://stackoverflow.com/questions/1961997/is- यह संभव करने के लिए एड-PyQt4-pyside-संकुल-ऑन-ए-virtualenv-सैंडबॉक्स # 8,160,111)। – evadeflow

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