জুপিটার নোটবুকে এনভিভি ভেরিয়েবল কীভাবে সেট করবেন


92

আমার একটি সমস্যা আছে যে বাপিআরসিআর ফাইলটিতে জুপিটার এনভির ভেরিয়েবলটি দেখতে পাচ্ছে না, এই ভেরিয়েবলগুলিকে জুপিটারে লোড করার বা এটিতে ভিজিয়েবল যুক্ত করার কোনও উপায় আছে কি?

উত্তর:


115

একটি jupyter নোটবুক একটি env পরিবর্তনশীল সেট করতে, শুধু একটি ব্যবহার %যাদু কমান্ড, নয়তো %envবা %set_envযেমন,, %env MY_VAR=MY_VALUEবা %env MY_VAR MY_VALUE। ( %envবর্তমান পরিবেশের ভেরিয়েবলগুলি মুদ্রণ করতে নিজেই ব্যবহার করুন ))

দেখুন: http://ipython.readthedocs.io/en/stable/interactive/magics.html


আপনি কি সহজেই উদ্ধৃতি চেষ্টা করেছেন? মনে রাখবেন যে os.en वातावरण পরিবর্তন করা এক নয় - এটি কেবলমাত্র (মেমরির সাথে, বর্তমান পাইথন প্রক্রিয়াতে) ডিক পরিবর্তন করতে পারে এবং আক্ষরিক অর্থে কোনও OS env var সেট করে না (যেমন পরবর্তী শেল কমান্ডের জন্য)।
মাইকেল 25

4
আমি আমার পূর্ববর্তী মন্তব্যগুলি যথাযথ না হওয়ায় মুছে ফেলেছি - তবে নোট করুন যে% এনভ এবং% সেট_েনভ যাদু কমান্ডগুলি os.environ[var] = valব্যাকেন্ডে ব্যবহার করেছে: github.com/ipython/ipython/blob/master/IPython/core/magics/…
evan_b

4
@ মাইকেল সমস্ত নোটবুক জুড়ে পরিবেশ বজায় রাখার কোন উপায় আছে কি? পরিবেশটিকে এইভাবে সেট করা কেবল বর্তমান নোটবুকের জন্য পরিবেশকে অবিচ্ছিন্ন মনে হচ্ছে।
জেমস ওয়েয়ারজবা

31

আপনি আপনার kernel.jsonফাইলে ভেরিয়েবলগুলি সেট করতে পারেন :

আমার সমাধানটি দরকারী যদি আপনি যখন একবার জুপিটার কার্নেল শুরু করেন তখন আপনার একই পরিবেশের পরিবর্তনশীলগুলির প্রয়োজন হয়, বিশেষত যদি আপনার বিভিন্ন কাজের জন্য একাধিক পরিবেশের ভেরিয়েবল থাকে sets

আপনার পরিবেশের ভেরিয়েবলের সাহায্যে একটি নতুন আইপিথন কার্নেল তৈরি করতে, নিম্নলিখিতটি করুন:

  • Https://jupyter-client.readthedocs.io/en/stable/kernels.html#kernel-specs এ ডকুমেন্টেশন পড়ুন
  • চালান jupyter kernelspec listইনস্টল করা কার্নেলগুলির এবং যেখানে ফাইল সংরক্ষণ করা হয় সঙ্গে একটি তালিকা দেখতে।
  • python2নতুন ডিরেক্টরিতে (উদাহরণস্বরূপ python2_myENV) কার্নেল.জসন (যেমন নামকরণ করা ) রয়েছে এমন ডিরেক্টরিটি অনুলিপি করুন ।
  • display_nameনতুন kernel.jsonফাইলটিতে পরিবর্তন করুন
  • envপরিবেশের ভেরিয়েবলগুলি সংজ্ঞায়িত করে একটি অভিধান যুক্ত করুন ।

আপনার কার্নেল জসন এর মতো দেখতে পারা যায় (আমি ইনস্টল করা কার্নেল.জসন display_nameএবং ব্যতীত কোনও কিছুই সংশোধন করিনি env):

{
 "display_name": "Python 2 with environment",
 "language": "python",
 "argv": [
  "/usr/bin/python2",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "env": {"LD_LIBRARY_PATH":""}
}

এই পদ্ধতির ক্ষেত্রে এবং সুবিধা ব্যবহার করুন

  • আমার ব্যবহারের ক্ষেত্রে, আমি পরিবর্তনশীলটি সেট করতে চেয়েছিলাম LD_LIBRARY_PATHযা কীভাবে সংকলিত মডিউলগুলি (যেমন সি তে লিখিত) লোড হয় effects এই পরিবর্তনশীলটি ব্যবহার করে সেট করা কার্যকর %set_envহয়নি।
  • আমার বিভিন্ন পরিবেশ সহ একাধিক পাইথন কার্নেল থাকতে পারে।
  • পরিবেশ পরিবর্তন করতে, আমাকে কেবল কার্নেলটি স্যুইচ / পুনঃসূচনা করতে হবে, তবে আমাকে জুপিটার উদাহরণটি পুনরায় আরম্ভ করতে হবে না (দরকারী, যদি আমি অন্য নোটবুকে ভেরিয়েবলগুলি আলগা করতে না চাই)। যাইহোক - https://github.com/jupyter/notebook/issues/2647 দেখুন

আপনি দয়া করে আমাকে পরামর্শ দিতে পারেন কীভাবে আমি C:\Program Files (x86)\Graphviz2.38\bin\dot.exeআপনার প্রস্তাবিত কৌশলটি ব্যবহার করে বিদ্যমান সিস্টেমের পথে যুক্ত করব? আমি যদি অ্যাডমিন অ্যাকাউন্ট ব্যবহার না করি তবে এটি কী কাজ করবে? আমি উইন্ডোজ 10 ব্যবহার করছি
খুররম মাজিদ

ঠিক আমার যা প্রয়োজন ছিল। হোমব্রাবির পাইথন পূর্বে সেট sys.executableনা PYTHONEXECUTABLEকরা ওভাররাইট করে, যা আপনাকে পাইথন রান করার আগে সেট করতে হবে।
স্টিফান ড্রাগেনভ

আমার মতে এটিই একমাত্র সঠিক উত্তর, কারণ এটি কোনও নির্দিষ্ট কার্নেলের মধ্যে কার্যকারিতা উপলব্ধ হওয়ার উপর নির্ভর করে কেবলমাত্র বৃহস্পতি ব্যবহার করে।
শ্যাডটলকার

19

আপনি যদি পাইথন ব্যবহার করছেন, আপনি কোনও .envফাইলের মধ্যে আপনার পরিবেশের ভেরিয়েবলগুলি সংজ্ঞায়িত করতে পারেন এবং পাইথন-ডোটেনভ ব্যবহার করে একটি বৃহত্তর নোটবুকের মধ্যে থেকে এগুলি লোড করতে পারেন

পাইথন-ডোটেনভ ইনস্টল করুন:

pip install python-dotenv

.envএকটি বৃহত্তর নোটবুকে ফাইলটি লোড করুন :

%load_ext dotenv
%dotenv

17

আপনি নিম্নলিখিত হিসাবে আপনার কোডে পরিবেশ পরিবর্তনশীল সেটআপ করতে পারেন:

import sys,os,os.path
sys.path.append(os.path.expanduser('~/code/eol_hsrl_python'))
os.environ['HSRL_INSTRUMENT']='gvhsrl'
os.environ['HSRL_CONFIG']=os.path.expanduser('~/hsrl_config')

এটি অবশ্যই একটি অস্থায়ী স্থিরকরণের জন্য, একটি স্থায়ী রূপ পেতে, আপনার সম্ভবত ভেরিয়েবলগুলি রফতানি ~.profileকরতে হবে, আরও তথ্য এখানে পাওয়া যাবে


4
ধন্যবাদ কারদাজ, solved /। প্রোফাইলে চলকটি রফতানি করে সমাধান করে, মনে হচ্ছে এটি বাশ্রাক থেকে পড়ছে না যা দয়ালু অদ্ভুত is
এহাব আলবদাভি

4
মাইকেল এর সাথে %env MY_VAR=MY_VALUEউত্তরটি এই প্রশ্নের সঠিক উত্তর হওয়া উচিত
সিডা ঝো

@ সিডাঝৌ মাইকেল এর উত্তর কেন ভাল?
তাকে

4
@ সিডা চাউ ব্যবহারের ক্ষেত্রে নির্ভর করে - আপনি যদি ক্রেডিটগুলি এনভির জন্য উপলব্ধ হন - এবং আপনার নোটবুকে ক্রেডিটগুলি না চান (যেমন উত্স নিয়ন্ত্রণের উপর) তবে এটি আদর্শ নয়।
morganics

4

আপনি পরিবর্তনশীল সেট প্রয়োজন আগে আপনি নোটবুক শুরু করছেন, শুধুমাত্র সমাধান যা আমার জন্য কাজ ছিল env VARIABLE=$VARIABLE jupyter notebookসঙ্গে export VARIABLE=valueমধ্যে .bashrc

আমার ক্ষেত্রে টেনসরফ্লো এটি একটি নোটবুকে সফলভাবে আমদানি করার জন্য রফতানি পরিবর্তনশীল দরকার।


2

একটি গোচা যাতে আমি প্রবেশ করলাম: নিম্নলিখিত দুটি কমান্ড সমান। নোট করুন প্রথমটি উদ্ধৃতি ব্যবহার করতে পারে না । কিছুটা বিপরীতক্রমে, স্ট্রিংটি ব্যবহার করার সময় উদ্ধৃতি দেওয়ার %env VAR ...ফলে কোয়েটগুলি ভেরিয়েবলের মান হিসাবে অন্তর্ভুক্ত হবে, যা সম্ভবত আপনি চান না।

%env MYPATH=C:/Folder Name/file.txt

এবং

import os
os.environ['MYPATH'] = "C:/Folder Name/file.txt"

1

আপনি যদি সিস্টেমড ব্যবহার করছেন তবে আমি সবেমাত্র জানতে পেরেছিলাম যে এগুলি আপনাকে সিস্টেমড ইউনিট ফাইলে যুক্ত করতে হবে। এটি উবুন্টু ১ on এ them

আমাকে সম্পাদনা করতে হয়েছিল:

/lib/systemd/system/jupyer-notebook.service

এবং ভেরিয়েবলটি আমি ইউনিট ফাইলে পড়তে চেয়েছিলাম যেমন:

Environment=MYOWN_VAR=theVar

এবং কেবল তখনই আমি এটি সরল নোটবুকের মধ্যে থেকে পড়তে পারি।


0

একটি সম্পর্কিত (স্বল্প-মেয়াদী) সমাধান হ'ল আপনার পরিবেশের পরিবর্তনশীলগুলি একটি একক ফাইলে সংরক্ষণের পূর্বাভাসযোগ্য বিন্যাস সহ, টার্মিনাল শুরু করার সময় এবং / অথবা নোটবুকটিতে পড়ার পরে এটি তৈরি করা যেতে পারে। উদাহরণস্বরূপ, আমার কাছে একটি ফাইল রয়েছে, .envএতে আমার পরিবেশের পরিবর্তনশীল সংজ্ঞাটি ফর্ম্যাটটিতে রয়েছে VARIABLE_NAME=VARIABLE_VALUE(ফাঁকা লাইন বা অতিরিক্ত স্থান নেই)। নতুন টার্মিনাল সেশন শুরু করার সময় আপনি এই ফাইলটি .bashrcবা .bash_profileফাইলগুলিতে উত্স তৈরি করতে পারেন এবং আপনি এটির মতো কিছু দিয়ে একটি নোটবইতে পড়তে পারেন,

import os
env_vars = !cat ../script/.env
for var in env_vars:
    key, value = var.split('=')
    os.environ[key] = value

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

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