আমি একটি সহজ বাশ স্ক্রিপ্ট যা লিখতে চেষ্টা করেছি (যা আমি ভাবতাম):
- environment 1 এ নতুন পরিবেশ তৈরি করতে ভার্চুয়ালেনভ চালান
- ভার্চুয়াল পরিবেশ সক্রিয় করুন
- আরও কিছু স্টাফ করুন (জ্যাঞ্জো ইনস্টল করুন, ভ্যাচুয়ালেনভের পথে django-admin.py যুক্ত করুন)
পদক্ষেপ 1 বেশ ভাল কাজ করে, তবে আমি ভ্যুচুয়ালেনভকে সক্রিয় করার মতো বলে মনে করতে পারি না। যারা activate
ভার্চুয়ালেনভের সাথে পরিচিত নয় তাদের জন্য এটি একটি ফাইল তৈরি করে যা ভার্চুয়াল পরিবেশকে সক্রিয় করে activ সিএলআই থেকে আপনি এটি ব্যবহার করে চালানsource
source $env_name/bin/activate
যেখানে $ env_name, স্পষ্টতই, ভার্চুয়াল এনভিটি ইনস্টল করা সেই দির নাম।
আমার স্ক্রিপ্টে, ভার্চুয়াল পরিবেশ তৈরি করার পরে, আমি সক্রিয় স্ক্রিপ্টের জন্য পথটি এভাবে সংরক্ষণ করি:
activate="`pwd`/$ENV_NAME/bin/activate"
কিন্তু আমি যখন ফোন করি তখন আমি এটি source "$activate"
পাই:
/home/clawlor/bin/scripts/djangoenv: 20: source: not found
আমি জানি যে $activate
এতে অ্যাক্টিভেট স্ক্রিপ্টের সঠিক পথ রয়েছে, প্রকৃতপক্ষে আমি এমনকি টেস্ট করেছি যে কোনও ফাইল কল করার আগেই রয়েছে source
। তবে source
নিজেই এটি খুঁজে পাচ্ছে না। আমি সিএলআই-তে সমস্ত পদক্ষেপ ম্যানুয়ালি চালানোর চেষ্টা করেছি, যেখানে সবকিছু ঠিকঠাক কাজ করে।
আমার গবেষণায় আমি এই স্ক্রিপ্টটি পেয়েছি যা আমি যা চাই তার সাথে একই তবে এটি আমার প্রয়োজন হয় না এমন আরও অনেকগুলি কাজ করে যা একটি like / .virtualenv ডিরেক্টরিতে (বা যা কিছু আছে তাতে) ভার্চুয়াল পরিবেশের সমস্ত সঞ্চয় করে রাখার মতো doing $ WORKON_HOME)। তবে আমার কাছে মনে হয় যে তিনি পথ তৈরি করছেন এবং মূলত আমি একইভাবে activate
কল source "$activate"
করছি।
এটি সম্পূর্ণরূপে স্ক্রিপ্ট এখানে:
#!/bin/sh
PYTHON_PATH=~/bin/python-2.6.1/bin/python
if [ $# = 1 ]
then
ENV_NAME="$1"
virtualenv -p $PYTHON_PATH --no-site-packages $ENV_NAME
activate="`pwd`/$ENV_NAME/bin/activate"
if [ ! -f "$activate" ]
then
echo "ERROR: activate not found at $activate"
return 1
fi
source "$activate"
else
echo 'Usage: djangoenv ENV_NAME'
fi
অস্বীকৃতি: আমার বাশ স্ক্রিপ্ট-ফু বেশ দুর্বল। আমি সিএলআই-তে মোটামুটি আরামদায়ক, তবে এটি খুব ভাল বোকা কারণ থাকতে পারে না।