bash: mkvirtualenv: কমান্ড পাওয়া যায় নি


101

ডগ হেলম্যানের virtualenvwrapperপোস্টের নির্দেশাবলী অনুসরণ করার পরেও আমি পরীক্ষার পরিবেশটি ছড়িয়ে দিতে পারি নি।

[mpenning@tsunami ~]$ mkvirtualenv test
-bash: mkvirtualenv: command not found
[mpenning@tsunami ~]$

এটি লক্ষ করা উচিত যে আমি WORKON_HOMEএটি ব্যবহার করছি না আমার $HOMEইনস্টলেশন ডক্সে/usr/local/bin/virtualenvwrapper.sh যেমন দেখানো হয়েছিল তেমন চেষ্টা করার চেষ্টা করেছি , তবে এটি বিদ্যমান নেই।virtualenvwrapper

আমি CentOS 6 এবং অজগর 2.6.6 চালাচ্ছি, যদি এটি বিবেচনা করে।


# File: ~/.bash_profile
# ...

export WORKON_HOME="/opt/virtual_env/"
source "/opt/virtual_env/bin/virtualenvwrapper_bashrc"

উত্তর:


108

সমাধান 1 :

কিছু কারণে, এর পরিবর্তে virtualenvwrapper.shইনস্টল /usr/bin/virtualenvwrapper.shকরা /usr/local/bin

আমার .bash_profileকাজগুলিতে নিম্নলিখিতগুলি ...

source "/usr/bin/virtualenvwrapper.sh"
export WORKON_HOME="/opt/virtual_env/"

আমার ইনস্টলটি সোর্সিং ছাড়াই ঠিকঠাক বলে মনে হচ্ছে virtualenvwrapper_bashrc

সমাধান 2 :

বিকল্প হিসাবে নীচে উল্লিখিত হিসাবে, আপনি virtualenvwrapper.shইতিমধ্যে আপনার শেল এর মধ্যে যে সুযোগটি কাজে লাগাতে পারেন PATHএবং কেবল একটি জারি করতে পারেনsource `which virtualenvwrapper.sh`


5
WORKON_HOME"~ / .Virtualenvs" এ সেট করা ( ডিফল্ট মান ) বেসরকারী ভার্চুয়ালনেভি সেট করতে দেয়
পিয়েরে লেস্পিনায়

4
আপনি যদি আপনার ডিস্ট্রোর প্যাকেজ ম্যানেজার ব্যবহার করে ইনস্টল করেন তবে ফাইলগুলি এর /usr/binপরিবর্তে থাকবে /usr/local/bin। সাধারণত, আপনার এক বা অন্যটিকে খুঁজে পাওয়া উচিত নয়; এটি আমাদের একটি PATHপরিবর্তনশীল থাকার অন্যতম কারণ ।
ট্রিপলি

এই উত্তরটি পাইপের সাথে ভার্চুয়েলভ্রাপার ইনস্টল করার উপর ভিত্তি করে ছিল, যা আমি পছন্দ করি।
মাইক পেনিংটন

এটি প্রথমে ইনস্টল করা প্রয়োজন,pip install virtualenvwrapper
এডি

4
WORKON_HOMEalচ্ছিক এবং সমাধানটির সাথে কোনও সম্পর্ক নেই।
scones

57

চেষ্টা করুন:

source `which virtualenvwrapper.sh`

ব্যাকটিকগুলি হ'ল কমান্ড প্রতিস্থাপন - তারা প্রোগ্রামটি যা প্রিন্ট করে তা গ্রহণ করে এবং তা প্রকাশের মধ্যে ফেলে put এই ক্ষেত্রে "যা" virtualenvwrapper.sh সন্ধান করতে $ PATH পরীক্ষা করে এবং এটির পথকে আউটপুট করে। এরপরে স্ক্রিপ্টটি 'উত্স' এর মাধ্যমে শেল দিয়ে পড়ে।

আপনি যদি নিজের শেলটি পুনরায় চালু করতে চান তবে আপনি যদি প্রথমে "কমান্ড" কমান্ডটি আউটপুটটি ধরে ফেলেন এবং তারপরে আপনার উত্সটিতে "উত্স" রেখাটি দেওয়া ভাল তবে এটি সম্ভবত:

echo "source /path/to/virtualenvwrapper.sh" >> ~/.profile

Your এটি আপনার শেলের উপর ভিত্তি করে কিছুটা পৃথক হতে পারে। এছাড়াও, একক> ব্যবহার না করা সম্পর্কে সতর্কতা অবলম্বন করুন কারণ এটি আপনার ~ /। প্রোফাইল: -ও কেটে দেবে


4
যদিও সমস্যাটি সমাধান করার জন্য এটি মূল্যবান ইঙ্গিত হতে পারে তবে উত্তরটির চেয়ে এইটির চেয়ে কিছুটা বিশদ প্রয়োজন। এটি কীভাবে সমস্যার সমাধান করবে তা বোঝাতে সম্পাদনা করুন । বিকল্পভাবে, পরিবর্তে মন্তব্য হিসাবে এটি লেখার বিবেচনা করুন।
টবি স্পিড

4
এটি আমার সমস্যার সমাধান করেছে। তবে কেউ কেন এবং কীভাবে ব্যাখ্যা করবেন?
h0r53

4
ব্যাকটিকগুলি হ'ল কমান্ড প্রতিস্থাপন - তারা প্রোগ্রামটি যা প্রিন্ট করে তা নেয় এবং এটিকে এক্সপ্রেশনটিতে রাখে। এই ক্ষেত্রে "যা" virtualenvwrapper.sh সন্ধান করার জন্য che PATH পরীক্ষা করে এবং এর পথে আউটপুট দেয়। এরপরে স্ক্রিপ্টটি 'উত্স' এর মাধ্যমে শেল দিয়ে পড়ে।
এরিখ

43

পাইথন ২.7.৫ সহ ওএস এক্স 10.9.1 এ আমার একই সমস্যা ছিল। WORKON_HOMEআমার পক্ষে কোনও সমস্যা নেই , তবে আমি দৌড়ানোর পরে আমাকে ম্যানুয়ালি যুক্ত source "/usr/local/bin/virtualenvwrapper.sh"করতে হয়েছিল ~/.bash_profile(বা ~/.bashrcইউনিক্সে)pip install virtualenvwrapper


4
আপনি কোথায় "/usr/local/bin/virtualenvwrapper.sh" উত্স ম্যানুয়ালি যোগ করেছেন?
গ্রেগোলজি

4
@ গ্রেগোলজি আমি সেই লাইনটি যুক্ত করেছি ~/.bash_profile। মনে রাখবেন যে আপনি এটি যুক্ত করার পরে আপনাকে হয় টার্মিনালটি পুনরায় লোড করতে হবে (যা চলমান .bash_profile) অথবা কেবলমাত্র sourceকমান্ড লাইন থেকে সেই কমান্ডটি চালাতে হবে ।
নিক বনেস

4
ফাইল নাম সহ যদি আপনার একটি শিরোনাম থাকে এবং সমস্ত বিষয়বস্তু প্রদর্শিত হয় তবে এটি "আপনি এটি কোথায় রেখেছিলেন?" সম্পর্কে ফলোআপ প্রশ্নগুলি গ্রহণ করতে হবে না তবে এটি খুব সহায়ক হবে?
জেগালার্ডো

4
আপনি যে প্ল্যাটফর্মটি ব্যবহার করছেন তা সরাসরি ব্যবহার করছেন .bash_profileবা .bashrcনা হউক না কেন, এক বা অন্য কিছু প্ল্যাটফর্মে অনুপস্থিত থাকতে পারে। তাদের পার্থক্যের জন্য বাশ ম্যানুয়াল পৃষ্ঠাটি দেখুন। সাধারণত, আপনার শুধুমাত্র এটির প্রয়োজন হবে .bash_profileতবে কিছু ডিস্ট্রোস সেটআপগুলি ব্যবহার করে যা বিষয়গুলিকে জটিল করে তোলে।
ট্রিপলি

25

এই আদেশটি কার্যকর করার পূর্বশর্ত -

  1. পাইপ ( পি আইপি আই এর পুনরাবৃত্ত সংক্ষিপ্ত রূপ পি অ্যাকেজগুলি) পাইথনে লেখা সফ্টওয়্যার প্যাকেজ ইনস্টল ও পরিচালনা করতে ব্যবহৃত একটি প্যাকেজ পরিচালনা ব্যবস্থা। পাইথন প্যাকেজ সূচীতে (পাইপিআই) অনেকগুলি প্যাকেজ পাওয়া যায়।

    সুডো পাইথন-পাইপ ইনস্টল করুন

  2. ভার্চুয়াল পরিবেশ ইনস্টল করুন। ভার্চুয়াল পরিবেশ তৈরি করতে, প্যাকেজ ইনস্টল করতে এবং একে অপরের থেকে বিচ্ছিন্ন একাধিক প্রকল্পের নির্ভরতা ব্যবহার করতে ব্যবহৃত হয়।

    sudo পাইপ ইনস্টল করুন ভার্চুয়ালেনভ

  3. ভার্চুয়াল এনভায়রন র‌্যাপার সম্পর্কে ভার্চুয়াল এনভায়রনমেন্ট রেপার ইনস্টল করুন

    sudo পাইপ ইনস্টল করুন ভার্চুয়ালেনভ্র্যাপার

পূর্বশর্ত ইনস্টল করার পরে ভার্চুয়াল পরিবেশ তৈরি করতে আপনার ভার্চুয়াল পরিবেশের মোড়ক কার্যকর করতে হবে। নিম্নলিখিত পদক্ষেপগুলি হল -

  1. পাথ ভেরিয়েবল- এ ভার্চুয়াল পরিবেশ ডিরেক্টরি সেট করুন export WORKON_HOME=(directory you need to save envs)

  2. source /usr/local/bin/virtualenvwrapper.sh -p $WORKON_HOME

@ মাইক দ্বারা উত্সর্গীকৃত, উত্স - যা virtualenvwrapper.sh` বা virtualenvwrapper.sh which virtualenvwrapper.shফাইল সনাক্ত করতে ব্যবহৃত হতে পারে।

প্রতিবার নতুন শেল খোলার পরে উপরের কমান্ডগুলি সম্পাদন করা এড়াতে ~ / .Bashrc এ দুটি লাইন উপরে রাখাই ভাল। Mkvirtualenv ব্যবহার করে আপনার পরিবেশ তৈরি করা দরকার

মনে রাখতে পয়েন্টগুলি -

  • উবুন্টুর অধীনে, আপনাকে রুট হিসাবে ভার্চুয়ালেনভ এবং ভার্চুয়ালেনভ্রাপার ইনস্টল করতে হবে। কেবলমাত্র sudo দিয়ে উপরের কমান্ডটি উপসর্গ করুন।
  • ভার্চুয়ালেনভ ইনস্টল করতে ব্যবহৃত প্রক্রিয়াটির উপর নির্ভর করে, ভ্যুচুয়ালেনভ্রাপার.শ এর পথটি পৃথক হতে পারে। $ Find / usr -name virtualenvwrapper.sh চালিয়ে উপযুক্ত পাথটি সন্ধান করুন। আপনার .bash_profile বা .bashrc স্ক্রিপ্টে লাইনটি সেই অনুযায়ী সামঞ্জস্য করুন।

4
একটি নোট যোগ করা হচ্ছে। উবুন্টু 18.04-এ, আমাকে ইনস্টল করার পরে পুনরায় বুট করতে হয়েছিল এবং তারপরে এটি কাজ করে।
ড্যান গ্রাহন

@স্ক্রিনমট মূল্যবান ইনপুট জন্য ধন্যবাদ। আমি উবুন্টু 16.04 ব্যবহার করার সাথে এটি মিস করেছি। তবে আমি জানতে চাই আপনি কোন পদক্ষেপের পরে পুনরায় বুট করতে হয়েছিল? পাইপ প্যাকেজ ইনস্টল করার পরে বা "ভার্চুয়াল পরিবেশ ডিরেক্টরি" সেটআপ করার পরে?
কেশব

র‍্যাপারটি ইনস্টল করার পরে। এটা তার পরে কাজ করে।
ড্যান গ্রাহন

4
@ ড্যানগ্রাহন আপনাকে পুনরায় বুট করার দরকার নেই, কেবল পুনরায় চালু করতে হবে .bashrc- হয় source ~/.bashrcআপনার বর্তমান টার্মিনালে স্পষ্ট করে বা একটি নতুন টার্মিনাল উইন্ডো খোলার
টিজে এলিস

14

উবুন্টুতে ভার্চুয়াল এনএভিভি তৈরি করতে এই পদ্ধতিটি ব্যবহার করুন

ধাপ 1

পাইপ ইনস্টল করুন

   sudo apt-get install python-pip

ধাপ ২

ভার্চুয়ালেনভ ইনস্টল করুন

   sudo pip install virtualenv

ধাপ 3

আপনার ভ্যুচুয়ালেন্সগুলি সঞ্চয় করার জন্য একটি দির তৈরি করুন (আমি ~ / .virtualenvs ব্যবহার করি)

   mkdir ~/.virtualenvs

অথবা env তে পাইথনের নির্দিষ্ট সংস্করণ ইনস্টল করতে এই কমান্ডটি ব্যবহার করুন

virtualenv -p /usr/bin/python3.6 venv

পদক্ষেপ 4

   sudo pip install virtualenvwrapper

পদক্ষেপ 5

   sudo nano ~/.bashrc

পদক্ষেপ 6

বাশার্ক ফাইলের শেষে এই দুটি লাইন কোড যুক্ত করুন

  export WORKON_HOME=~/.virtualenvs
  source /usr/local/bin/virtualenvwrapper.sh

পদক্ষেপ 7

নতুন টার্মিনাল খুলুন (প্রস্তাবিত)

পদক্ষেপ 8

একটি নতুন ভার্চুয়ালেনভ তৈরি করুন

  mkvirtualenv myawesomeproject

পদক্ষেপ 9

ভার্চুয়ালেনভগুলি লোড বা স্যুইচ করতে, ওয়ার্কন কমান্ডটি ব্যবহার করুন:

  workon myawesomeproject

পদক্ষেপ 10

আপনার নতুন ভার্চুয়ালেনভ থেকে প্রস্থান করতে, ব্যবহার করুন

 deactivate

এবং পিপ বনাম পিপ 3 ব্যবহার করে তা নিশ্চিত করুন

অথবা পাইথন 3 ব্যবহার করে ভার্চুয়াল পরিবেশ ইনস্টল করতে নীচের পদক্ষেপগুলি অনুসরণ করুন

ইনস্টল env

python3 -m venv my-project-env

এবং নিম্নলিখিত ভার্চুয়াল পরিবেশটি সক্রিয় করুন:

source my-project-env/bin/activate

6

যেহেতু আমি স্রেফ একটি টানা টানতে গিয়েছি, আমি উত্তরটি লিখতে চেষ্টা করব যেটি আমি দুই ঘন্টা আগে চেয়েছিলাম। এটি এমন লোকদের জন্য যারা কেবল অনুলিপি এবং পেস্ট সমাধান চান না

প্রথম: আপনি কি আশ্চর্য হন যে কেন অনুলিপি করা এবং পাস্তুলের পথগুলি কারও জন্য কাজ করে যখন এটি অন্যের পক্ষে কাজ করে না? ** মূল কারণ, সমাধানগুলির মধ্যে পার্থক্য রয়েছে পৃথক পাইথন সংস্করণ, 2.x বা 3.x are পাইগন 2 বা 3 এর সাথে কাজ করে এমন ভার্চুয়ালেনভ এবং ভার্চুয়ালেনভ্রাপারের আলাদা আলাদা সংস্করণ রয়েছে যা আপনি পাইথন 2 এ থাকলে এমনভাবে ইনস্টল করুন:

sudo pip install virutalenv
sudo pip install virtualenvwrapper

যদি আপনি পাইথন 3 ব্যবহার করার পরিকল্পনা করেন তবে পাইথন সম্পর্কিত 3 সংস্করণ ইনস্টল করুন

sudo pip3 install virtualenv
sudo pip3 install virtualenvwrapper

আপনি আপনার অজগর সংস্করণের জন্য প্যাকেজগুলি সফলভাবে ইনস্টল করেছেন এবং ঠিক আছে, ঠিক আছে? ঠিক আছে, চেষ্টা করুন। workonআপনার টার্মিনাল টাইপ করুন। আপনার টার্মিনালটি কমান্ডটি খুঁজে পেতে সক্ষম হবে না ( workonএটি ভার্চুয়ালেনভ্রাপারের একটি আদেশ)। অবশ্যই হবে না। Workonএকটি এক্সিকিউটেবল যে শুধুমাত্র একবার আপনি লোড / সোর্স ফাইল আপনার কাছে উপলব্ধ হবে virtualenvwrapper.sh। তবে অফিসিয়াল ইনস্টলেশন নির্দেশিকাটি আপনি কি এটির উপরে আচ্ছাদন করেছেন? কেবলমাত্র আপনার .bash_profile খুলুন এবং নিম্নলিখিতটি সন্নিবেশ করুন, এটি ডকুমেন্টেশনে বলে:

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh

বিশেষ করে কমান্ড source /usr/local/bin/virtualenvwrapper.shথেকে কমান্ড লোড / উৎসে পছন্দসই ফাইল বলে মনে হয় সহায়ক বলে মনে হয় virtualenvwrapper.shযে সব কমান্ড তোমার মত সাথে কাজ করতে চান ধারণ করে workonএবং mkvirtualenvতবে হ্যাঁ, না যখন সরকারী ইনস্টলেশন গাইড অনুসরণ আপনি খুব প্রাথমিক পদ থেকে ত্রুটিটি পান করার সম্ভাবনা বেশি: mkvirtualenv: command not found। এখনও কোনও আদেশ পাওয়া যায় নি এবং আপনি এখনও হতাশ। তাহলে এখানে সমস্যা কী? সমস্যাটি হ'ল ভার্চুয়ালেনভ্রাপার.শ আপনি এখনই এটি খুঁজছেন তা নয়। সংক্ষিপ্ত অনুস্মারক ... আপনি এখানে খুঁজছেন:

source /usr/local/bin/virtualenvwrapper.sh

তবে পছন্দসই ফাইলটি খুঁজে পাওয়ার জন্য বেশ সহজ সরল পথ রয়েছে। লিখো

which virtualenvwrapper

আপনার টার্মিনালে এটি আপনার প্যাথটিকে ফাইলের জন্য অনুসন্ধান করবে , যেহেতু এটি সম্ভবত আপনার সিস্টেমের PATH তে অন্তর্ভুক্ত এমন কোনও ফোল্ডারে রয়েছে।

যদি আপনার সিস্টেমটি খুব বিদেশী হয় তবে কাঙ্ক্ষিত ফাইলটি একটি PATH ফোল্ডারের বাইরে লুকিয়ে থাকবে। virtalenvwrapper.shসেক্ষেত্রে শেল কমান্ডের সাহায্যে আপনি পাথ খুঁজে পেতে পারেনfind / -name virtualenvwrapper.sh

আপনার ফলাফলটি এর মতো দেখতে পারে: /Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh অভিনন্দন। You have found your missing file!। এখন আপনাকে যা করতে হবে তা হ'ল আপনার .bash_ প্রোফাইলে একটি কমান্ড পরিবর্তন করা। শুধু পরিবর্তন করুন:

source "/usr/local/bin/virtualenvwrapper.sh"

প্রতি:

"/Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh"

অভিনন্দন। ভার্চুয়ালেনভ্রাপার এখন আপনার সিস্টেমে কাজ করে। তবে আপনার সমাধানটি বাড়ানোর জন্য আপনি আরও একটি জিনিস করতে পারেন। আপনি যদি virtualenvwrapper.shআদেশটি দিয়ে ফাইলটি খুঁজে পেয়েছেন তবে which virtualenvwrapper.shআপনি জানেন যে এটি PATH ফোল্ডারের অভ্যন্তরে। সুতরাং আপনি যদি কেবল ফাইলের নাম লিখেন তবে আপনার ফাইল সিস্টেমটি অনুমান করবে যে ফাইলটি কোনও প্যাথ ফোল্ডারের অভ্যন্তরে রয়েছে। সুতরাং আপনাকে পুরো পথটি লিখতে হবে না। লিখো:

source "virtualenvwrapper.sh"

এটাই. আপনি আর হতাশ হন না। আপনি আপনার সমস্যা সমাধান করেছেন। আশা করি।


আমি আসলে আপনার সমাধানটি কেবল অনুলিপি করে দিয়েছি এবং রেখেছি
জনি 5

2

উইন্ডোজ 10 এবং পাইথন 36-তে গিট ব্যাশ ব্যবহার করে আমি ভার্চুয়ালেনভ্রাপার.শকে কিছুটা আলাদা জায়গায় পেয়েছি এবং এটি চালিয়ে সমস্যার সমাধান করেছে running

source virtualenvwrapper.sh 
/c/users/[myUserName]/AppData/Local/Programs/Python36/Scripts

উইন্ডোজ 10, গিট ব্যাশ এবং পাইথন 3.8 ব্যবহার করে আমার জন্য এটি চালু ছিল:/c/Users/[myUserName]/AppData/Roaming/Python/Python38/Scripts
মনুর

2

virtualenvwrapperউবুন্টু 18.04.3 এ সফলভাবে ইনস্টল করার জন্য আপনাকে নিম্নলিখিতগুলি করতে হবে:

  1. ইনস্টল করুন virtualenv

    sudo apt install virtualenv
    
  2. ইনস্টল করুন virtualenvwrapper

    sudo pip install virtualenv
    sudo pip install virtualenvwrapper
    
  3. .bashrcফাইলটির শেষে নিম্নলিখিতটি যুক্ত করুন

    export WORKON_HOME=~/virtualenvs
    export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
    source ~/.local/bin/virtualenvwrapper.sh
    
  4. সম্পাদন .bashrcফাইল

    source ~/.bashrc
    
  5. আপনার ভার্চুয়ালেনভ তৈরি করুন

    mkvirtualenv your_virtualenv
    

পাশাপাশি উবুন্টু 20.04 এ কাজ করে। একটি ছোট সংশোধন করা: WORKON_HOME=~/.virtualenvsডিফল্ট। সেট করতে হবে না। VIRTUALENVWRAPPER_PYTHON=/usr/bin/pythonএটিও ডিফল্ট, তবে পাইথন 3 ব্যবহার করার সময় এটি দরকারী। এক ব্যবহার করা উচিত export PATH="$HOME/.local/bin:$PATH"পাইথন বাইনারি পাথ জন্য
scones

1

উইন্ডোজ 7 এবং গিট ব্যাশে এটি আমাকে সহায়তা করে:

  1. একটি। / .Bashrc ফাইল তৈরি করুন (আপনার ব্যবহারকারী হোম ফোল্ডারের নীচে)
  2. লাইন যোগ করুন রপ্তানি WORKON_HOME = $ হোম / .virtualenvs (যদি এটি বিদ্যমান নয় আপনি এই ফোল্ডার তৈরি হবে)
  3. লাইন উত্স যুক্ত করুন "সি: \ প্রোগ্রাম ফাইলগুলি (x86) \ পাইথন 36-32 \ স্ক্রিপ্টস ts virtualenvwrapper.sh" (আপনার virtualenvwrapper.sh জন্য পথ পরিবর্তন করুন)

আপনার গিট ব্যাশ পুনরায় আরম্ভ করুন এবং mkvirtualenv কমান্ড এখন দুর্দান্তভাবে কাজ করবে।


0

পাইথন ২.7..6 সহ উবুন্টু ১৪.০৪ ওএসে আমার সমস্যাটি সমাধান করুন, lines / .bash_profile (অথবা ইউনিক্সে ~ / .bashrc) ফাইলগুলিতে দুটি লাইন যুক্ত করে।

উত্স "/usr/local/bin/virtualenvwrapper.sh"

WORKON_Home = "/ অপ্ট / ভার্চুয়াল_ইনভি /" রফতানি করুন

এবং তারপরে টার্মিনালে এই উভয় লাইন চালানো।


0

উইন্ডোজ 10 উপর, ভার্চুয়াল পরিবেশ তৈরি, আমি প্রতিস্থাপন " পিপ mkvirtualenv দ্বারা" myproject " mkvirtualenv myproject" এবং যে ভাল কাজ করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.