যদি আপনি ব্যবহার করছেন virtualenvwrapper (আমি অত্যন্ত করার সুপারিশ করছি), আপনি বিভিন্ন আঙ্গুলসমূহ (preactivate, postactivate, predeactivate, postdeactivate) এ একই নামের স্ক্রিপ্ট ব্যবহার নির্ধারণ করতে পারবেন $VIRTUAL_ENV/bin/
। আপনার পোস্টঅ্যাকটিভেট হুক দরকার।
$ workon myvenv
$ cat $VIRTUAL_ENV/bin/postactivate
#!/bin/bash
# This hook is run after this virtualenv is activated.
export DJANGO_DEBUG=True
export S3_KEY=mykey
export S3_SECRET=mysecret
$ echo $DJANGO_DEBUG
True
আপনি যদি এই প্রকল্পটি আপনার ডিরেক্টরি ডিরেক্টরিতে রাখতে চান তবে কেবল আপনার প্রকল্প ডিরেক্টরি থেকে একটি সিমলিংক তৈরি করুন $VIRTUAL_ENV/bin/postactivate
।
$ rm $VIRTUAL_ENV/bin/postactivate
$ ln -s .env/postactivate $VIRTUAL_ENV/bin/postactivate
এমনকি আপনি প্রতিবার mkvirtualenv ব্যবহার করার সময় সিমলিঙ্কগুলি তৈরি করতে স্বয়ংক্রিয় করতে পারেন ।
নিষ্ক্রিয় উপর পরিষ্কার করা
মনে রাখবেন যে এটি নিজের পরে পরিষ্কার হবে না। আপনি যখন ভার্চুয়ালেনভ নিষ্ক্রিয় করবেন তখন পরিবেশের পরিবর্তনশীলটি বজায় থাকবে। প্রতিসামান্যভাবে পরিষ্কার করতে আপনি এতে যুক্ত করতে পারেন $VIRTUAL_ENV/bin/predeactivate
।
$ cat $VIRTUAL_ENV/bin/predeactivate
#!/bin/bash
# This hook is run before this virtualenv is deactivated.
unset DJANGO_DEBUG
$ deactivate
$ echo $DJANGO_DEBUG
মনে রাখবেন যে যদি পরিবেশের পরিবর্তনশীলগুলির জন্য এটি ব্যবহার করা হয় যা ইতিমধ্যে আপনার পরিবেশে সেট করা থাকে তবে আনসেটটি ফলশ্রুভেনভিটি ছেড়ে যাওয়ার পরে পুরোপুরি আনসেট হয়ে যায়। সুতরাং যদি এটি সম্ভাব্য হয় তবে আপনি আগের মানটি কোথাও অস্থায়ীভাবে রেকর্ড করতে পারেন তবে নিষ্ক্রিয় অবস্থায় এটি আবার পড়ুন।
সেটআপ:
$ cat $VIRTUAL_ENV/bin/postactivate
#!/bin/bash
# This hook is run after this virtualenv is activated.
if [[ -n $SOME_VAR ]]
then
export SOME_VAR_BACKUP=$SOME_VAR
fi
export SOME_VAR=apple
$ cat $VIRTUAL_ENV/bin/predeactivate
#!/bin/bash
# This hook is run before this virtualenv is deactivated.
if [[ -n $SOME_VAR_BACKUP ]]
then
export SOME_VAR=$SOME_VAR_BACKUP
unset SOME_VAR_BACKUP
else
unset SOME_VAR
fi
টেস্ট:
$ echo $SOME_VAR
banana
$ workon myenv
$ echo $SOME_VAR
apple
$ deactivate
$ echo $SOME_VAR
banana