পাইথন বা আইপথন ইন্টারপ্রেটারে প্রবেশ করার সময় স্বয়ংক্রিয়ভাবে মডিউলগুলি আমদানি করুন


119

import numpy as npপাইথন ইন্টারপ্রেটারকে জ্বালানোর সময় প্রায় প্রতিটি সময় নিজেকে টাইপ করতে দেখি। অজস্র স্বয়ংক্রিয়ভাবে আমদানি করা হয় আমি কীভাবে পাইথন বা আইপথন ইন্টারপ্রেটার সেট আপ করব?

উত্তর:


70

পরিবেশ পরিবর্তনশীল পাইথনস্টার্টআপ ব্যবহার করুন । অফিসিয়াল ডকুমেন্টেশন থেকে:

এটি যদি পঠনযোগ্য ফাইলের নাম হয় তবে প্রথম প্রম্পট ইন্টারেক্টিভ মোডে প্রদর্শিত হওয়ার আগে সেই ফাইলের পাইথন কমান্ডগুলি কার্যকর করা হয়। ফাইলটি একই নামস্থানে কার্যকর করা হয় যেখানে ইন্টারেক্টিভ কমান্ডগুলি কার্যকর করা হয় যাতে এতে সংজ্ঞায়িত বা আমদানীকৃত বস্তুগুলি ইন্টারেক্টিভ সেশনে যোগ্যতা ছাড়াই ব্যবহার করা যায়।

সুতরাং, কেবল আমদানি বিবৃতি দিয়ে একটি অজগর স্ক্রিপ্ট তৈরি করুন এবং পরিবেশের পরিবর্তনশীলটিকে এটিতে নির্দেশ করুন। এই কথাটি বলে, মনে রাখবেন যে 'স্পষ্টতই সর্বদা অন্তর্নিহিতের চেয়ে ভাল', সুতরাং উত্পাদন স্ক্রিপ্টগুলির জন্য এই আচরণের উপর নির্ভর করবেন না।

আইপিথনের জন্য, কীভাবে আইপিথন_কনফিগ ফাইল তৈরি করতে হয় তার এই টিউটোরিয়ালটি দেখুন


@ এমক্লাউবার, ধন্যবাদ, তবে সেখানে গৃহীত সমাধানটি হ্রাস পেয়েছে। তবে এটি আমার সম্পাদনাটিকে অনুপ্রাণিত করেছিল। @ ওপি: আমার সম্পাদিত উত্তর দেখুন
ধারা

3
@ লেখক 545424 এই লেখার হিসাবে (আইপথন 1.1.0) খুব পাইথনস্টার্টআপ সমর্থন করে।
pflaquerre

সেটিং env PYTHONSTARTUP="~/.startup.py"আমার জন্য কাজ করে নি
Seanny123

export PYTHONSTARTUP=~/.python_shell_startup.pyভেরিয়েবল সেট করার জন্য কেবল একটি নোট ।
পল্লবক্ষী

77

আইপথনের জন্য, এটি অর্জনের দুটি উপায় রয়েছে। উভয়ই আইপথনের কনফিগারেশন ডিরেক্টরিটি অন্তর্ভুক্ত যা এতে অবস্থিত ~/.ipython

  1. একটি কাস্টম আইপিথন প্রোফাইল তৈরি করুন।
  2. অথবা আপনি এতে একটি স্টার্টআপ ফাইল যুক্ত করতে পারেন ~/.ipython/profile_default/startup/

সরলতার জন্য, আমি বিকল্প 2 ব্যবহার করব আপনার যা যা করতে হবে তা হ'ল ডিরেক্টরিতে একটি ফাইল .pyবা .ipyফাইল স্থাপন ~/.ipython/profile_default/startupকরতে হবে এবং এটি স্বয়ংক্রিয়ভাবে কার্যকর হয়ে যাবে। সুতরাং আপনি import numpy as npএকটি সরল ফাইলে সরল জায়গা রাখতে পারেন এবং আপনার আইপথন প্রম্পটের নেমস্পেসে এনপি থাকতে পারে।

বিকল্প 2 আসলে একটি কাস্টম প্রোফাইলের সাথে কাজ করবে, তবে একটি কাস্টম প্রোফাইল ব্যবহার করা আপনাকে কোনও নির্দিষ্ট কেসের উপর ভিত্তি করে প্রারম্ভিক প্রয়োজনীয়তা এবং অন্যান্য কনফিগারেশন পরিবর্তন করতে দেয়। তবে, আপনি যদি সর্বদা আপনার npকাছে উপস্থিত থাকতে চান তবে সর্বদা এটি স্টার্টআপ ডিরেক্টরিতে রেখে দিন।

আইপথন কনফিগারেশন সম্পর্কিত আরও তথ্যের জন্য। ডক্স অনেক সম্পূর্ণ ব্যাখ্যা আছে।


2
উবুন্টু 14.04 এ ডিরেক্টরিটি আসলে: ~/.config/ipython/profile_default/startup/এবং নয়~/.ipython/profile_default/startup/
পিটার

1
দুর্ভাগ্যক্রমে, উপরের বিকল্প 2 ট্যাব সমাপ্তির অনুমতি দেয় না।
ব্যবহারকারী 1717828

21

আমি এই জাতীয় একটি use / .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

তারপরে পাইথনস্টার্টআপ = ~ / .startup.py সংজ্ঞা দিন এবং শেল শুরু করার সময় পাইথন এটি ব্যবহার করবে।

মুদ্রণ বিবরণী আছে তাই আমি যখন শেলটি শুরু করি, তখন আমি একটি অনুস্মারক পাই যা এটি কার্যকর এবং ইতিমধ্যে কী আমদানি করা হয়েছে। ppশর্টকাট খুব সত্যিই কুশলী হচ্ছে ...


লিনাক্সে আমার পক্ষে কাজ করেনি। পাইথনকে আমার হোম ডিরেক্টরি বা অন্য কিছু সন্ধানের জন্য বলতে হবে?
Seanny123

ওফস: একটি গুরুত্বপূর্ণ পদক্ষেপটি ভুলে গেছি: আমি এটি যুক্ত করেছি: পাইথনস্টার্টআপ সংজ্ঞা দিন
নেড ব্যাচেল্ডার

আমি কখনই জানতে পারি না কখন কাজগুলির ~বিকল্প হিসাবে হয় $HOMEবা না হয় তবে এই আপেক্ষিক পথটির পরিবর্তে আমাকে ম্যাকওএস, ফিশ এবং পাইথন 3 এর উপর একটি পরম পথ ব্যবহার করতে হয়েছিল।
rien333

@ নেড ব্যাচেল্ডার, আপনাকে অনেক ধন্যবাদ, আমি এটিই খুঁজছিলাম। পাশের প্রশ্ন, আমি এটি উইন্ডোতে ব্যবহার করছি এবং পিপি শর্টকাট কাজ করছে না। আপনি কি দয়া করে পরামর্শ দিতে পারেন? >>> পিপি <ফাংশন প্রিন্ট 0x0000020DAF90C8C8> >>> পিপি () সর্বাধিক কল last প্রয়োজনীয় অবস্থানগত যুক্তি: 'অবজেক্ট' >>>
চিরদিনের প্রশিক্ষণার্থী

5

রেভেনাক 95 এর মতো একটি কাস্টম স্টার্টআপ স্ক্রিপ্ট তৈরি করার সময় বেশিরভাগ ক্ষেত্রে সর্বাধিক সাধারণ উত্তর হিসাবে পরামর্শ দেওয়া হয়, আপনি যেখানে এটি ব্যবহার করতে চান সে পরিস্থিতিতে এটি কাজ করবে না from __future__ import X। আপনি যদি মাঝে মাঝে পাইথন ২.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"'আপনার ash / .Bash_aliases ফাইলটিতে রাখুন। এরপরে আপনি পাইথন + নিম্পের সাথে ডেকে আনতে pynpপারেন এবং আপনি এখনও কেবল পাইথন দিয়ে এটি ব্যবহার করতে পারেন python। পাইথন স্ক্রিপ্টগুলির আচরণটি অদৃশ্য রয়েছে।


PYTHONSTARTUPকেবল ইন্টারেক্টিভ মোডে আমন্ত্রিত হয় , তাই পাইথন স্ক্রিপ্টগুলির আচরণ যাহাই হউক না কেন। একটি ফাইলের রেফারেন্স সহ একটি alias pynp='PYTHONSTARTUP="~/.startup.py" python'
উপাধিও

2

আপনি পছন্দসই import_numpy.pyবা আপনার পছন্দ মতো একটি সাধারণ অজগর স্ক্রিপ্ট তৈরি করতে পারেন

#!/bin/env python3
import numpy as np

তারপরে এটি -iপতাকা সহ চালু করুন ।

python -i import_numpy.py

এর মতো উপায় আপনাকে বিভিন্ন প্রকল্পের জন্য কেবলমাত্র মডিউলগুলি বেছে নিতে নমনীয়তা দেয়।


1

যেমন রেভেনাক 95 তার উত্তরে উল্লিখিত হয়েছে , আপনি হয় একটি কাস্টম প্রোফাইল তৈরি করতে পারেন বা ডিফল্ট প্রোফাইলটি পরিবর্তন করতে পারেন। এই উত্তরটি 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 কনফিগ টিউটোরিয়াল প্রোফাইলের কনফিগার সম্পর্কে গভীরতা আরও পড়তে। .ipython/profile_default/startup/READMEপ্রারম্ভিক ডিরেক্টরিটি কীভাবে কাজ করে তা বুঝতে দেখুন ।


1

আমার ডিফল্ট ipythonপ্রার্থনা

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

--pylabipythonকিছু সময়ের জন্য একটি বিকল্প ছিল। এটি আমদানি করে numpyএবং (কিছু অংশ) matplotlib। আমি --Inter...বিকল্পটি যুক্ত করেছি যাতে এটি *আমদানিটি ব্যবহার না করে , যেহেতু আমি স্পষ্টত ব্যবহার করতে পছন্দ করি np....

এটি শর্টকাট, ওরফে বা স্ক্রিপ্ট হতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.