আপডেট উত্তর
এটি করার আরও ভাল উপায় হ'ল:
import subprocess
import sys
reqs = subprocess.check_output([sys.executable, '-m', 'pip', 'freeze'])
installed_packages = [r.decode().split('==')[0] for r in reqs.split()]
ফলাফল:
print(installed_packages)
[
"Django",
"six",
"requests",
]
requests
ইনস্টল করা আছে কিনা তা পরীক্ষা করুন :
if 'requests' in installed_packages:
# Do something
কেন এভাবে? কখনও কখনও আপনার অ্যাপ্লিকেশন নামের সংঘর্ষ হয়। অ্যাপ নেমস্পেস থেকে আমদানি আপনাকে সিস্টেমে কী ইনস্টল করা হয়েছে তার পুরো চিত্র দেয় না।
দ্রষ্টব্য, প্রস্তাবিত সমাধান কাজ করে:
- পিপিআই বা অন্য কোনও বিকল্প উত্স (যেমন
pip install http://some.site/package-name.zip
বা অন্য কোনও সংরক্ষণাগার ধরণ) থেকে ইনস্টল করতে পিপ ব্যবহার করার সময় ।
- ম্যানুয়ালি ব্যবহার করে ইনস্টল করার সময়
python setup.py install
।
- সিস্টেম সংগ্রহস্থল থেকে ইনস্টল করার সময়, পছন্দ করুন
sudo apt install python-requests
।
কেসগুলি যখন এটি কাজ নাও করতে পারে :
- বিকাশ মোডে ইনস্টল করার সময়, পছন্দ করুন
python setup.py develop
।
- বিকাশ মোডে ইনস্টল করার সময়, পছন্দ করুন
pip install -e /path/to/package/source/
।
পুরানো উত্তর
এটি করার আরও ভাল উপায় হ'ল:
import pip
installed_packages = pip.get_installed_distributions()
পাইপ> = 10.x ব্যবহারের জন্য:
from pip._internal.utils.misc import get_installed_distributions
কেন এভাবে? কখনও কখনও আপনার অ্যাপ্লিকেশন নামের সংঘর্ষ হয়। অ্যাপ নেমস্পেস থেকে আমদানি আপনাকে সিস্টেমে কী ইনস্টল করা হয়েছে তার পুরো চিত্র দেয় না।
ফলস্বরূপ, আপনি pkg_resources.Distribution
বস্তুর একটি তালিকা পাবেন get নিম্নলিখিত হিসাবে একটি উদাহরণ হিসাবে দেখুন:
print installed_packages
[
"Django 1.6.4 (/path-to-your-env/lib/python2.7/site-packages)",
"six 1.6.1 (/path-to-your-env/lib/python2.7/site-packages)",
"requests 2.5.0 (/path-to-your-env/lib/python2.7/site-packages)",
]
এটির একটি তালিকা তৈরি করুন:
flat_installed_packages = [package.project_name for package in installed_packages]
[
"Django",
"six",
"requests",
]
requests
ইনস্টল করা আছে কিনা তা পরীক্ষা করুন :
if 'requests' in flat_installed_packages:
# Do something