आपको पर्यावरण चर के माध्यम से या तो सीधे पथ को संशोधित करने की आवश्यकता नहीं होनी चाहिए sys.path
। चाहे आप ओएस (पूर्व apt-get
) का उपयोग करें , या pip
एक वर्चुअनव में, संकुल पहले से ही पथ पर एक स्थान पर स्थापित हो जाएगा।
आपके उदाहरण में, GNU रेडियो सिस्टम पायथन 2 के मानक site-packages
स्थान पर स्थापित है, जो पहले से ही पथ में है। सही दुभाषिया पर Pyharm का इशारा करना काफी है; अगर यह नहीं है तो कुछ और गलत है जो स्पष्ट नहीं है। यह हो सकता है कि /usr/bin/python
एक ही दुभाषिया को इंगित नहीं करता है कि GNU रेडियो में स्थापित किया गया था; python2.7
बाइनरी पर विशेष रूप से इंगित करने का प्रयास करें । या, PyCharm पैकेजों का पता लगाने में कुछ बुरा हुआ करता था; File > Invalidate Caches > Invalidate and Restart
इसे rescan के लिए कहेंगे।
यह उत्तर कवर करेगा कि आपको प्रोजेक्ट वातावरण कैसे सेट करना चाहिए, विभिन्न परिदृश्यों में पैकेज स्थापित करना चाहिए, और PyCharm को कॉन्फ़िगर करना चाहिए। मैं पायथन पैकेजिंग उपयोगकर्ता गाइड के लिए कई बार संदर्भित करता हूं , उसी समूह द्वारा लिखा गया है जो आधिकारिक पायथन पैकेजिंग टूल रखता है।
पायथन एप्लिकेशन को विकसित करने का सही तरीका एक वर्चुअन है। सिस्टम या अन्य परियोजनाओं को प्रभावित किए बिना पैकेज और संस्करण स्थापित किए जाते हैं। PyCharm में बिल्ट-इन इंटरफ़ेस है जो एक virtualenv बनाने और पैकेज स्थापित करने के लिए है। या आप इसे कमांड लाइन से बना सकते हैं और फिर उस पर PyCharm को इंगित कर सकते हैं।
$ cd MyProject
$ python2 -m virtualenv env
$ . env/bin/activate
$ pip install -U pip setuptools # get the latest versions
$ pip install flask # install other packages
अपने PyCharm परियोजना में, पर जाएं File > Settings > Project > Project Interpreter
। यदि आपने virtualenvwrapper
env बनाने के लिए PyCharm का उपयोग किया है, तो इसे मेनू में दिखाना चाहिए। यदि नहीं, तो गियर पर क्लिक करें, चुनें Add Local
, और एनवी में पायथन बाइनरी का पता लगाएं। PyCharm चयनित env में सभी संकुल प्रदर्शित करेगा।
कुछ मामलों में, जैसे कि जीएनयू रेडियो के साथ pip
, पैकेज के साथ स्थापित करने के लिए कोई पैकेज नहीं है , पैकेज को सिस्टम-वाइड स्थापित किया गया था जब आप बाकी जीएनयू रेडियो (पूर्व apt-get install gnuradio
) स्थापित करते हैं । इस स्थिति में, आपको अभी भी एक virtualenv का उपयोग करना चाहिए, लेकिन आपको इस सिस्टम पैकेज से अवगत कराना होगा।
$ python2 -m virtualenv --system-site-packages env
दुर्भाग्य से यह थोड़ा गड़बड़ लग रहा है, क्योंकि सभी सिस्टम पैकेज अब आपके एनवी में दिखाई देंगे, लेकिन वे केवल लिंक हैं, आप सिस्टम को प्रभावित किए बिना अभी भी सुरक्षित रूप से पैकेज स्थापित या अपग्रेड कर सकते हैं।
कुछ मामलों में, आपके पास कई स्थानीय पैकेज होंगे जो आप विकसित कर रहे हैं, और चाहते हैं कि एक प्रोजेक्ट दूसरे पैकेज का उपयोग करे। इस मामले में आप सोच सकते हैं कि आपको स्थानीय पैकेज को दूसरे प्रोजेक्ट के पथ पर जोड़ना होगा, लेकिन ऐसा नहीं है। आपको अपना पैकेज विकास मोड में स्थापित करना चाहिए । इसके लिए जरूरी है कि setup.py
आपके पैकेज में एक फ़ाइल शामिल हो , जिसे बाद में पैकेज को ठीक से वितरित और तैनात करने के लिए किसी भी तरह की आवश्यकता होगी।
setup.py
आपकी पहली परियोजना के लिए न्यूनतम :
from setuptools import setup, find_packages
setup(
name='mypackage',
version='0.1',
packages=find_packages(),
)
फिर इसे अपने दूसरे प्रोजेक्ट के एनव में स्थापित करें:
$ pip install -e /path/to/first/project