मुझे एक समस्या है कि जुपिटर bashrc फ़ाइल में env वैरिएबल नहीं देख सकता है, क्या इन वेरिएबल्स को ज्यूपिटर में लोड करने या इसमें कस्टोम वैरिएबल जोड़ने का कोई तरीका है?
मुझे एक समस्या है कि जुपिटर bashrc फ़ाइल में 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.environ[var] = valबैकएंड पर उपयोग करते हैं: github.com/ipython/ipython/blob/master/IPython-core/magics/…
kernel.jsonफ़ाइल में चर भी सेट कर सकते हैं :मेरा समाधान उपयोगी है यदि आपको एक ही पर्यावरण चर की आवश्यकता होती है, तो हर बार जब आप एक ज्यूपिटर कर्नेल शुरू करते हैं, खासकर यदि आपके पास विभिन्न कार्यों के लिए पर्यावरण चर के कई सेट हैं।
अपने पर्यावरण चर के साथ एक नया ipython कर्नेल बनाने के लिए, निम्नलिखित कार्य करें:
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जो प्रभावित करता है कि कैसे संकलित मॉड्यूल (जैसे सी में लिखे गए) लोड किए जाते हैं। इस चर का उपयोग करके सेट करने से %set_envकाम नहीं हुआ।C:\Program Files (x86)\Graphviz2.38\bin\dot.exeआपकी सुझाई गई तकनीक का उपयोग करके मौजूदा सिस्टम पथ में कैसे जोड़ूँ ? यदि मैं व्यवस्थापक खाते का उपयोग नहीं कर रहा हूं तो क्या यह काम करेगा? मैं विंडोज 10 का उपयोग कर रहा हूं
sys.executableजब तक कि PYTHONEXECUTABLEवह पहले से सेट न हो , जिसे आपको अजगर के चलने से पहले सेट करना होगा।
यदि आप पायथन का उपयोग कर रहे हैं, तो आप अपने पर्यावरण चर को एक .envफ़ाइल में परिभाषित कर सकते हैं और उन्हें अजगर-डॉटेनव का उपयोग करके ज्यूपिटर नोटबुक के भीतर से लोड कर सकते हैं ।
अजगर स्थापित करें:
pip install python-dotenv
लोड करें .envफ़ाइल को ज्यूपिटर नोटबुक में :
%load_ext dotenv
%dotenv
आप निम्न प्रकार से अपने कोड में पर्यावरण चर सेटअप कर सकते हैं:
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, अधिक जानकारी यहां मिल सकती है
%env MY_VAR=MY_VALUEइस सवाल का सही जवाब होना चाहिए
एक गोच मैं भाग गया: निम्नलिखित दो आज्ञाएँ बराबर हैं। ध्यान दें पहले उद्धरणों का उपयोग नहीं कर सकते । कुछ हद तक जवाबी तौर पर, स्ट्रिंग का उपयोग करते समय कोटेशन का %env VAR ...परिणाम चर के मूल्य के हिस्से के रूप में शामिल किया जाएगा, जो कि शायद आप नहीं चाहते हैं।
%env MYPATH=C:/Folder Name/file.txt
तथा
import os
os.environ['MYPATH'] = "C:/Folder Name/file.txt"
यदि आप systemd का उपयोग कर रहे हैं तो मुझे अभी पता चला है कि आप उन्हें systemd यूनिट फ़ाइल में जोड़ना चाहते हैं। यह 16 Ubuntu पर। उन्हें .profile और .bashrc (यहां तक कि / etc / प्रोफाइल) में डालने से ENV Vars को जिप्टर नोटबुक में उपलब्ध नहीं किया गया।
मुझे संपादित करना था:
/lib/systemd/system/jupyer-notebook.service
और वैरिएबल में डाल दिया, जिसे मैं यूनिट फ़ाइल में पढ़ना चाहता था जैसे:
Environment=MYOWN_VAR=theVar
और उसके बाद ही मैं इसे जूसर नोटबुक से पढ़ सकता था।
एक संबंधित (अल्पकालिक) समाधान एक पूर्वानुमानित प्रारूप के साथ अपने पर्यावरण चर को एक फ़ाइल में संग्रहीत करना है, जो कि टर्मिनल शुरू करने और / या नोटबुक में पढ़ने के दौरान खट्टा हो सकता है। उदाहरण के लिए, मेरे पास एक फ़ाइल है, .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फ़ाइल कहीं भी रह सकती है और नोटबुक फ़ाइल वाली निर्देशिका के सापेक्ष संदर्भित की जा सकती है। यह आपके कोड के भीतर चर मानों को कहीं भी प्रदर्शित नहीं करने का भी लाभ है।