2016-04-12 7 views
18

क्या कॉन्फ़िगर प्रिंट करने के लिए पीआईपी प्राप्त करने का कोई तरीका है जिसका उपयोग करने का प्रयास किया जाएगा? डीबगिंग उद्देश्यों के लिए यह जानना बहुत अच्छा होगा कि:क्या यह उपयोग कर रहे कॉन्फ़िगरेशन को प्रिंट करने के लिए पीआईपी प्राप्त करना संभव है?

  1. config.ini फ़ाइलें सही जगह पर हैं और पीआईपी उन्हें ढूंढ रही है।
  2. config सेटिंग्स की पूर्वता तरह से व्यवहार किया जाता है एक docs
+0

क्या आपका मतलब pip.conf फाइल है? –

+1

हां, pip.conf फ़ाइल के समतुल्य विंडोज एक config.ini फ़ाइल है जिसे 'पीआईपी' नामक मूल निर्देशिका में है। – Alexander

उत्तर

17

अपडेट किया गया (जवाब देने टिप्पणी) से उम्मीद होती है

आप अजगर सांत्वना शुरू करने और कर सकते हैं। (Virtaulenv मत भूलना यदि आपके पास पहले इसे सक्रिय करने)

from pip import create_main_parser 
parser = create_main_parser() 
# print all config files that it will try to read 
print(parser.files) 
# reads parser files that are actually found and prints their names 
print(parser.config.read(parser.files)) 

create_main_parser समारोह है कि parser बनाता है जो पिप कमांड लाइन से पैरामीटर (optparse) और लोड हो रहा है कॉन्फ़िगरेशन (configparser)

संभव पढ़ने के लिए उपयोग करता है कॉन्फ़िगरेशन के लिए फ़ाइल नाम get_config_files में उत्पन्न होते हैं। PIP_CONFIG_FILE पर्यावरण परिवर्तक सहित सेट किया गया है।

parser.configRawConfigParser तो get_config_files में सभी उत्पन्न फ़ाइल नाम parser.config.read को पास किया जाता का उदाहरण है।

फ़ाइल नामों की एक सूची को पढ़ने और विश्लेषण करने का प्रयास, फ़ाइल नामों की एक सूची लौटाकर सफलतापूर्वक पार्स किया गया। अगर फ़ाइल नाम एक स्ट्रिंग है, तो इसे एक फ़ाइल नाम के रूप में माना जाता है। अगर फ़ाइल नामों में नामित फ़ाइल खोला नहीं जा सकता है, तो उस फाइल को अनदेखा कर दिया जाएगा। यह डिज़ाइन किया गया है ताकि आप संभावित कॉन्फ़िगरेशन फ़ाइल स्थानों की एक सूची निर्दिष्ट कर सकें (उदाहरण के लिए, वर्तमान निर्देशिका, उपयोगकर्ता की होम निर्देशिका, और कुछ सिस्टम-व्यापी निर्देशिका), और सूची में मौजूद सभी मौजूदा कॉन्फ़िगरेशन फ़ाइलें पढ़ी जाएंगी। यदि नामित फाइलों में से कोई भी मौजूद नहीं है, तो ConfigParser उदाहरण में एक खाली डेटासेट होगा।()() को पढ़ने के कॉल करने वाले किसी वैकल्पिक फ़ाइलों के लिए पहले जो प्रारंभिक मान एक फ़ाइल से लोड करने के लिए की आवश्यकता है एक आवेदन के लिए आवश्यक फाइल या read_file का उपयोग करके फ़ाइलें लोड होनी चाहिए:

+1

मुझे लगता है कि यह उपयोगी है लेकिन ऐसा लगता है कि यह उन फ़ाइलों को मुद्रित करता है जो संभावित रूप से उपयोग करेंगे। उदाहरण के लिए, यदि मैं इसे अपने मैक पर चलाता हूं तो मुझे '['/लाइब्रेरी/एप्लिकेशन सपोर्ट/पीआईपी/पीपी.कॉन्फ ',' /Users/myuser/.pip/pip.conf ','/उपयोगकर्ता/माइयूसर/लाइब्रेरी/एप्लिकेशन समर्थन/पीआईपी/pip.conf ']' लेकिन वास्तव में उन फ़ाइलों में से कोई भी मौजूद नहीं है। क्या कुछ लॉगिंग या कुछ भी है जो फाइलों को पढ़ने की कोशिश कर रहे हैं और क्या ऐसा करने में सफल रहा है या नहीं? – FGreg

+0

@FGreg मैं अपना उत्तर बढ़ाता हूं। मेरे पास आपके लिए कुछ प्रश्न हैं। आप अपनी 'config.ini' को पास करने का प्रयास कैसे कर रहे हैं? 'get_config_files'' PIP_CONFIG_FILE' पर्यावरण चर को पढ़ता है, क्या आप इसे ठीक से सेट कर रहे हैं? क्या आप वर्चुअलएन्व का उपयोग कर रहे हैं? –

+0

मैं यह पता लगाने की कोशिश कर रहा हूं कि ** ** ** यह एक pip.conf, pip.ini, conf.ini, आदि का उपयोग कर रहा है ... और यदि ऐसा है तो यह कहां स्थित है। आपके अपडेट जो मैं ढूंढ रहा था उसे कवर करने लगते हैं; धन्यवाद। – FGreg

0

कैसे मैं इसे देखना से, अपने प्रश्न व्याख्या की जा सकती तीन तरीकों से:

  1. पीआई निष्पादन योग्य की कॉन्फ़िगरेशन क्या है?

पिप द्वारा समर्थित विन्यास के लिए एक काफी व्यापक प्रलेखन नहीं है, यहाँ देखें: https://pip.pypa.io/en/stable/user_guide/#configuration

  1. क्या विन्यास रंज का उपयोग करता है कॉन्फ़िगर करते समय और बाद में निर्माण कोड की आवश्यकता है एक पायथन मॉड्यूल द्वारा?

यह स्थापित किया जा रहा पैकेज द्वारा निर्दिष्ट किया गया है। पैकेज रखरखाव एक कॉन्फ़िगरेशन स्क्रिप्ट बनाने के लिए ज़िम्मेदार है। उदाहरण के लिए, Numpy में एक कॉन्फ़िगरेशन क्लास (https://github.com/numpy/numpy/blob/master/numpy/distutils/misc_util.py) है जो वे अपने साइथन बिल्ड को कॉन्फ़िगर करने के लिए उपयोग करते हैं।

  1. पाइप के साथ स्थापित वर्तमान मॉड्यूल क्या हैं ताकि मैं एक विशिष्ट पर्यावरण कॉन्फ़िगरेशन पुन: पेश कर सकूं?

यह आसान है, pip freeze > requirements.txt। यह उनके वर्तमान संस्करणों के साथ वर्तमान में स्थापित सभी पाइप मॉड्यूल की एक फाइल तैयार करेगा। फिर आप किसी अन्य मशीन पर उस सटीक पर्यावरण कॉन्फ़िगरेशन को पुन: पेश करने के लिए pip install -r requirements.txt कर सकते हैं।

मुझे उम्मीद है कि इससे मदद मिलती है।

0

आप पीडीबी में पाइप चला सकते हैं।

>>> import pip 
>>> import pdb 
>>> pdb.run("pip.main()", globals()) 
(Pdb) s 
--Call-- 
> /usr/lib/python3.5/site-packages/pip/__init__.py(197)main() 
-> def main(args=None): 
(Pdb) b /usr/lib/python3.5/site-packages/pip/baseparser.py:146 
Breakpoint 1 at /usr/lib/python3.5/site-packages/pip/baseparser.py:146 
(Pdb) c 
> /usr/lib/python3.5/site-packages/pip/baseparser.py(146)__init__() 
-> if self.files: 
(Pdb) p self.files 
['/etc/xdg/pip/pip.conf', '/etc/pip.conf', '/home/andre/.pip/pip.conf', '/home/andre/.config/pip/pip.conf'] 

यहाँ केवल चाल baseparser की राह देख रहा था (और जानते हुए भी कि फ़ाइलें में हैं): यहाँ IPython अंदर एक उदाहरण है। यदि आप इसे पहले से नहीं जानते हैं तो आप बस प्रोग्राम के माध्यम से कदम उठा सकते हैं या स्रोत पढ़ सकते हैं। इस प्रकार की खोज अधिकांश पायथन कार्यक्रमों के लिए काम करनी चाहिए।

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

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