अजगर या ipython दुभाषिया में प्रवेश करते समय स्वचालित रूप से मॉड्यूल आयात करें


120

मैं खुद को import numpy as npलगभग हर बार टाइप करता हुआ पाता हूं जब मैं अजगर दुभाषिया को आग लगाता हूं। मैं अजगर या ipython दुभाषिया कैसे स्थापित करूं ताकि सुन्नता स्वतः आयात हो जाए?

जवाबों:


71

पर्यावरण चर PYTHONSTARTUP का उपयोग करें । आधिकारिक दस्तावेज से:

यदि यह एक पठनीय फ़ाइल का नाम है, तो उस फ़ाइल में पायथन कमांड्स को इंटरेक्टिव मोड में पहले प्रॉम्प्ट प्रदर्शित होने से पहले निष्पादित किया जाता है। फ़ाइल को उसी नामस्थान में निष्पादित किया जाता है जहां इंटरैक्टिव कमांड निष्पादित किए जाते हैं ताकि इसमें परिभाषित या आयात की गई वस्तुओं को इंटरैक्टिव सत्र में योग्यता के बिना उपयोग किया जा सके।

तो, बस आयात विवरण के साथ एक अजगर स्क्रिप्ट बनाएं और पर्यावरण चर को इंगित करें। ऐसा कहने के बाद, याद रखें कि 'स्पष्ट हमेशा निहित से बेहतर है', इसलिए उत्पादन स्क्रिप्ट के लिए इस व्यवहार पर भरोसा न करें।

Ipython के लिए, इस ट्यूटोरियल को देखें कि ipython_config फ़ाइल कैसे बनाते हैं


@mklauber, धन्यवाद, लेकिन वहाँ स्वीकृत समाधान पदावनत है। हालाँकि, इसने मेरे संपादन को प्रेरित किया। @ ओपी: मेरा संपादित जवाब देखें
धरा

3
@ user545424 इस लेखन के रूप में (ipython 1.1.0) PYTHONSTARTUP का भी समर्थन करता है।
pflaquerre

सेटिंग env PYTHONSTARTUP="~/.startup.py"मेरे लिए काम नहीं किया
Seanny123

बस export PYTHONSTARTUP=~/.python_shell_startup.pyचर सेट करने के लिए एक नोट ।
पल्लवबक्षी

78

Ipython के लिए, इसे प्राप्त करने के दो तरीके हैं। दोनों में ipththon की कॉन्फ़िगरेशन डायरेक्टरी शामिल है जो कि में स्थित है ~/.ipython

  1. एक कस्टम ipython प्रोफ़ाइल बनाएँ।
  2. या आप एक स्टार्टअप फ़ाइल जोड़ सकते हैं ~/.ipython/profile_default/startup/

सरलता के लिए, मैं विकल्प 2 का उपयोग करता हूं। आपको बस इतना करना है कि निर्देशिका में एक फ़ाइल .pyया .ipyफ़ाइल है ~/.ipython/profile_default/startupऔर यह स्वचालित रूप से निष्पादित किया जाएगा। तो आप import numpy as npएक साधारण फ़ाइल में सरल स्थान पा सकते हैं और आपके पास अपने आईपाइथन प्रॉम्प्ट के नामस्थान में एनपी होगा।

विकल्प 2 वास्तव में एक कस्टम प्रोफ़ाइल के साथ काम करेगा, लेकिन कस्टम प्रोफ़ाइल का उपयोग करने से आप किसी विशेष मामले के आधार पर स्टार्टअप आवश्यकताओं और अन्य कॉन्फ़िगरेशन को बदल सकेंगे। हालांकि, अगर आप चाहते हैं, तो हमेशा की तरह npआप के लिए उपलब्ध तब तक हर तरह स्टार्टअप निर्देशिका में डाल दिया हो।

IPython कॉन्फ़िगरेशन के बारे में अधिक जानकारी के लिए। डॉक्स एक और अधिक पूर्ण विवरण दिया है।


2
उबंटू 14.04 में निर्देशिका वास्तव में है: ~/.config/ipython/profile_default/startup/नहीं~/.ipython/profile_default/startup/
पीटर

1
दुर्भाग्य से, ऊपर विकल्प 2 टैब को पूरा करने की अनुमति नहीं देता है।
user1717828

21

मैं इस तरह एक ~ / .startup.py फ़ाइल का उपयोग करता हूं:

# Ned's .startup.py file
print("(.startup.py)")
import datetime, os, pprint, re, sys, time
print("(imported datetime, os, pprint, re, sys, time)")

pp = pprint.pprint

फिर PYTHONSTARTUP = ~ / .startup.py परिभाषित करें, और पायथन एक शेल शुरू करते समय इसका उपयोग करेगा।

प्रिंट स्टेटमेंट तब होते हैं जब मैं शेल शुरू करता हूं, मुझे एक रिमाइंडर मिलता है कि यह प्रभाव में है, और जो पहले से ही आयात किया गया है। ppशॉर्टकट भी वास्तव में उपयोगी है ...


लिनक्स पर मेरे लिए काम नहीं किया। क्या मुझे अपने घर की निर्देशिका या कुछ और देखने के लिए पायथन को बताना होगा?
सीनिइज

उफ़: एक महत्वपूर्ण कदम भूल गए: मैंने इसे जोड़ा है: PYTHONSTARTUP को परिभाषित करें
नेड

मुझे कभी नहीं पता है कि काम के ~विकल्प के रूप में $HOMEया नहीं, लेकिन इस सापेक्ष पथ के बजाय मुझे मैकओएस, मछली और अजगर 3 पर एक निरपेक्ष पथ का उपयोग करना पड़ा।
rien333

@ नीड बैचेदर, बहुत बहुत धन्यवाद, यह वही है जिसकी मुझे तलाश थी। पक्ष का सवाल, मैं इसे विंडोज़ पर उपयोग कर रहा हूँ और पीपी शॉर्टकट काम नहीं कर रहा है। क्या आप सलाह दे सकते हैं? >>> pp <function pprint at 0x0000020DAF90C8C8> >>> pp () Traceback (सबसे हाल का कॉल अंतिम): फ़ाइल "<stdin>", पंक्ति 1, में <मॉड्यूल: TypeError: pprint () अनुपलब्ध 1 आवश्यक स्थैतिक तर्क: 'ऑब्जेक्ट' >>>
फॉरएवर लर्नर

5

एक कस्टम स्टार्टअप स्क्रिप्ट बनाते समय की तरह ravenac95 पता चलता है ज्यादातर मामलों के लिए सबसे अच्छा सामान्य जवाब है, यह परिस्थितियों जहाँ आप एक का उपयोग करना चाहते में काम नहीं करेगा from __future__ import X। यदि आप कभी-कभी पायथन 2.x में काम करते हैं, लेकिन आधुनिक विभाजन का उपयोग करना चाहते हैं, तो ऐसा करने का केवल एक ही तरीका है। एक बार जब आप एक प्रोफ़ाइल बनाते हैं, तो इसे संपादित करें profile_default(उबंटू के लिए यह स्थित है ~/.ipython/profile_default) और नीचे की तरह कुछ जोड़ें:

c.InteractiveShellApp.exec_lines = [
    'from __future__ import division, print_function',
    'import numpy as np',
    'import matplotlib.pyplot as plt',
    ]

3

लिनक्स पर स्वीकृत उत्तर के सरल विकल्प के रूप में:

बस एक उपनाम को परिभाषित करें, जैसे alias pynp='python -i -c"import numpy as np"'आपकी ~ / .bash_aliases फ़ाइल में। आप तब अजगर + को सुन्न pynpकर सकते हैं, और आप अभी भी अजगर के साथ उपयोग कर सकते हैं python। पायथन लिपियों का व्यवहार अछूता नहीं रह गया है।


PYTHONSTARTUPकेवल इंटरेक्टिव मोड पर लागू किया जाता है, इसलिए अजगर लिपियों का व्यवहार वैसे भी अछूता रखा जाता है। एक उपनाम भी एक फ़ाइल संदर्भ के साथ बनाया जा सकता है:alias pynp='PYTHONSTARTUP="~/.startup.py" python'
F.Raab

2

आप के रूप में import_numpy.pyया आप की तरह कुछ भी एक सामान्य अजगर स्क्रिप्ट बना सकते हैं

#!/bin/env python3
import numpy as np

फिर इसे -iध्वज के साथ लॉन्च करें ।

python -i import_numpy.py

इस तरह से आपको विभिन्न परियोजनाओं के लिए केवल मॉड्यूल चुनने की सुविधा मिलेगी।


1

जैसा कि ravenac95 ने अपने उत्तर में बताया है , आप या तो एक कस्टम प्रोफ़ाइल बना सकते हैं या डिफ़ॉल्ट प्रोफ़ाइल को संशोधित कर सकते हैं। यह उत्तर लिनक्स कमांड के त्वरित दृश्य की जरूरत हैimport numpy as np स्वचालित रूप से ।

यदि आप किसी कस्टम प्रोफ़ाइल का उपयोग करना चाहते हैं numpy, जिसे कॉल करें :

ipython profile create numpy
echo 'import numpy as np' >> $(ipython locate profile numpy)/startup/00_imports.py
ipython --profile=numpy

या यदि आप हमेशा डिफॉल्ट आयात करने के लिए डिफ़ॉल्ट प्रोफ़ाइल को संशोधित करना चाहते हैं:

echo 'import numpy as np' >> $(ipython locate profile default)/startup/00_imports.py
ipython

प्रोफाइल को कॉन्फ़िगर करने के बारे में अधिक गहराई से पढ़ने के लिए IPython config ट्यूटोरियल देखें । यह .ipython/profile_default/startup/READMEसमझने के लिए देखें कि स्टार्टअप निर्देशिका कैसे काम करती है।


1

मेरा डिफ़ॉल्ट ipythonमंगलाचरण है

ipython --pylab --nosep --InteractiveShellApp.pylab_import_all=False

--pylabipythonकुछ समय के लिए एक विकल्प रहा है। यह आयात numpyऔर (के कुछ हिस्सों) matplotlib। मैंने --Inter...विकल्प जोड़ा है इसलिए यह *आयात का उपयोग नहीं करता है , क्योंकि मैं स्पष्ट का उपयोग करना पसंद करता हूं np....

यह एक शॉर्टकट, उपनाम या स्क्रिप्ट हो सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.