2010-05-25 10 views
5

मैं पाइथन स्क्रिप्ट निष्पादित करने से ठीक पहले, अस्थायी रूप से, PythonPATH पर्यावरण चर सेट कैसे करूं?विंडोज़ में अस्थायी पायथनपैथ

* nix में, मैं यह कर सकता हूँ:

$ PYTHONPATH='.' python scripts/doit.py 

Windows में, इस वाक्य रचना निश्चित रूप से, काम नहीं करता। समकक्ष क्या है, यद्यपि?

उत्तर

8

सेट और विंडोज 'कमांड लाइन पर एक वातावरण चर को बहाल एक दुर्भाग्य से "कुछ हद तक दर्दनाक" दृष्टिकोण की आवश्यकता है के लिए ...:

SET SAVE=%PYTHONPATH% 
SET PYTHONPATH=. 
python scripts/doit.py 
SET PYTHONPATH=%SAVE% 

आप कर सकते थे इसे कम दर्दनाक बनाने के लिए थोड़ा सहायक पाइथन लिपि का उपयोग करें, उदाहरण के लिए

import os 
import sys 
import subprocess 

for i, a in enumerate(sys.argv[1:]): 
    if '=' not in a: break 
    name, _, value = a.partition('=') 
    os.environ[name] = value 

sys.exit(subprocess.call(sys.argv[i:])) 

, के रूप में कहा जा जैसे,

python withenv.py PYTHONPATH=. python scripts/doit.py 

(मैं इसे कोडित तो यह लिए काम करता है किसी भी उपप्रक्रिया ही नहीं, Python स्क्रिप्ट है - अगर आप केवल पाइथन स्क्रिप्ट के बारे में परवाह आप कैल में दूसरा पायथन छोड़ सकते हैं और कोड में sys.argv[i-1] में 'पायथन' डाल सकते हैं, फिर sys.argv[i-1:] का उपयोग subprocess.call के लिए तर्क के रूप में करें)।

+0

एचएम। मुझे जो चाहिए उससे थोड़ा अधिक, लेकिन धन्यवाद! मैं कल यह कोशिश करूंगा। – Santa

1

विंडोज़ में, आप पाइथनपैथ को पर्यावरण चर के रूप में सेट कर सकते हैं, जिसमें एक जीयूआई फ्रंट एंड है। विंडोज के अधिकांश संस्करणों पर, आप मेरे कंप्यूटर पर राइट क्लिक करके लॉन्च कर सकते हैं और राइट क्लिक करें।

1

आप Windows पर SET का उपयोग करें:

SET PYTHONPATH=. 
python scripts/doit.py 
6

अस्थायी रूप से कैसे? यदि आप एक Windows कंसोल (cmd.exe), टाइपिंग खोलते हैं:

set PYTHONPATH=. 

केवल कि कंसोल और इसे से बनाए गए किसी भी बच्चे प्रक्रियाओं के लिए PYTHONPATH बदल जाएगा। इस कंसोल से चलने वाली कोई भी पाइथन स्क्रिप्ट नए पायथनपैथ मान का उपयोग करेगी। कंसोल बंद करें और परिवर्तन भूल जाएगा।

संबंधित मुद्दे