ऐसा करने का एक तरीका है, जैसा कि यह निकला। संस्करण 1.6 या उसके बाद से, virtualenv एक स्क्रिप्ट के साथ आता है activate_this.py
, जिसका उपयोग उस विशेष वर्चुअलएन्व तक पहुंचने के लिए मौजूदा दुभाषिया स्थापित करने के लिए किया जा सकता है।
exec(open('/Some/VirtualEnv/Directory/myvirtualenv/bin/activate_this.py').read(),
dict(__file__='/Some/VirtualEnv/Directory/myvirtualenv/bin/activate_this.py'))
और पूरी तरह से महसूस किए गए प्लापीथॉन फ़ंक्शन के रूप में:
CREATE OR REPLACE FUNCTION workon(venv text)
RETURNS void AS
$BODY$
import os
import sys
if sys.platform in ('win32', 'win64', 'cygwin'):
activate_this = os.path.join(venv, 'Scripts', 'activate_this.py')
else:
if not os.environ.has_key('PATH'):
import subprocess
p=subprocess.Popen('echo -n $PATH', stdout=subprocess.PIPE, shell=True)
(mypath,err) = p.communicate()
os.environ['PATH'] = mypath
activate_this = os.path.join(venv, 'bin', 'activate_this.py')
exec(open(activate_this).read(), dict(__file__=activate_this))
$BODY$
LANGUAGE plpythonu VOLATILE
(अतिरिक्त PATH मुंगरी की आवश्यकता है क्योंकि डिफ़ॉल्ट रूप से PATH plpython में उपलब्ध नहीं है os.environ -active_this.py में एक चेक इन ठीक करें जो अगले बिंदु रिलीज (जो 1.11.7 या 1.12 होना चाहिए) के साथ रोल करना चाहिए
(ज्यादातर https://gist.github.com/dmckeone/69334e2d8b27f586414a से लिया गया है )