मैं चलाना चाहते दौरान PYTHONPATH जोड़ें। मैं इसे अपने पर्यावरण चर में नहीं जोड़ सकता क्योंकि निर्देशिका मैं जो प्रोजेक्ट चला रहा हूं उसके आधार पर परिवर्तन जोड़ना चाहता हूं। क्या स्क्रिप्ट चलाने के दौरान PYTHONPATH
बदलने का कोई तरीका है? नोट: मेरे पास PYTHONPATH
वैरिएबल भी नहीं है, इसलिए मुझे इस स्क्रिप्ट को चलाने के दौरान इसे ओवरराइड करने के लिए इसमें शामिल होने की चिंता करने की आवश्यकता नहीं है।अजगर कमांड लाइन मॉड्यूल रन
उत्तर
मैक/लिनक्स के लिए;
PYTHONPATH=/foo/bar/baz python somescript.py somecommand
विंडोज के लिए, एक रैपर pythonpath.bat
सेट करें;
@ECHO OFF
setlocal
set PYTHONPATH=%1
python %2 %3
endlocal
और pythonpath.bat
स्क्रिप्ट फ़ाइल जैसे कॉल करें;
pythonpath.bat /foo/bar/baz somescript.py somecommand
import sys
sys.path.append('your certain directory')
मूल रूप से sys.path अजगर मॉड्यूल के लिए सभी खोज पथ के साथ एक सूची है। यह दुभाषिया द्वारा शुरू किया गया है। PYTHONPATH की सामग्री स्वचालित रूप से उस सूची के अंत में जोड़ दी जाती है।
या sys.path.insert (0, '/ some/directory') इसे अपने पथ के सामने रखने के लिए। यह आपकी सामग्री को अन्य सामानों को ओवरराइड करने की अनुमति देता है जो पहले से ही पाइथनपैथ पर हो सकते हैं। – sienkiew
मैंने इस जवाब का उपयोग pydev-eclipse IDE के बाहर अनजान चलाने के लिए किया था। – LAL
'sys.path.append (r'D: \ PyCharmProjects \ cheese_shoppe ') विंडोज में उदाहरण। –
आप एक POSIX शिकायत खोल से आदेश चला रहे हैं bash
की तरह, आप इस तरह वातावरण चर सेट कर सकते हैं:
PYTHONPATH="/path/to" python somescript.py somecommand
यदि यह एक पंक्ति में सब है, PYTHONPATH पर्यावरण मूल्य पर ही लागू होती वह एक आदेश।
$ echo $PYTHONPATH
$ python -c 'import sys;print("/tmp/pydir" in sys.path)'
False
$ PYTHONPATH=/tmp/pydir python -c 'import sys;print("/tmp/pydir" in sys.path)'
True
$ echo $PYTHONPATH
बस जो मैं खोज रहा था, बहुत बहुत धन्यवाद। कुछ कारणों से 'पायथन-सी "आयात sys चला रहा है; sys.path.insert (0,' my/path '); आयात Mymodule" 'काम नहीं किया। –
यह विंडोज़ के लिए है:
उदाहरण के लिए, मैं अपने डेस्कटॉप पर "mygrapher" नाम का फ़ोल्डर है। अंदर, "गणना" और "ग्राफिंग" नामक फ़ोल्डर्स हैं जिनमें पाइथन फाइलें हैं जो मेरी मुख्य फ़ाइल "grapherMain.py" की आवश्यकता है। साथ ही, "grapherMain.py" को "ग्राफ़िंग" में संग्रहीत किया जाता है। फ़ाइलों को स्थानांतरित किए बिना सबकुछ चलाने के लिए, मैं बैच स्क्रिप्ट बना सकता हूं। चलिए इस बैच फ़ाइल को "rungraph.bat" कहते हैं।
@ECHO OFF
setlocal
set PYTHONPATH=%cd%\grapher;%cd%\calculation
python %cd%\grapher\grapherMain.py
endlocal
यह स्क्रिप्ट "mygrapher" में स्थित है। चीजों को चलाने के लिए, मैं अपने कमांड प्रॉम्प्ट में मिलेगा, तो कार्य करें:
>cd Desktop\mygrapher (this navigates into the "mygrapher" folder)
>rungraph.bat (this executes the batch file)
और यह @ इस्माइल 'कार्टमैन' डोनेमेज़ उत्तर से अलग कैसे है? –
आपके पास अपनी स्क्रिप्ट
python -c "import sys; sys.path.append('/your/script/path'); import yourscript; yourscript.yourfunction()"
@ İsmail अंदर एक समारोह निष्पादित करने के लिए इस कोशिश कर सकते हैं - धन्यवाद। हालांकि, मैं अपने कमांड प्रॉम्प्ट से स्क्रिप्ट चलाने के दौरान ऐसा कैसे कर सकता हूं? मैं पाइथन नहीं चला रहा हूं, सामान आयात कर रहा हूं, और इसे मैन्युअल रूप से चला रहा हूं। – orokusaki
मैक/लिनक्स पर आप 'PYTHONPATH =/foo/bar python somescript.py कुछ कमांड' – ismail
करेंगे, मैंने 'python -c" आयात sys; sys.path.append ('/ my/dir') "' और फिर ' python myscript.py mycommand', लेकिन यह स्पष्ट रूप से अगले दुभाषिया सत्र से पथ को साझा नहीं करता है। आह, अभी आपकी अगली टिप्पणी देखी, कोशिश कर रहा है ... WinXP पर काम नहीं किया। – orokusaki