আমি কীভাবে স্থানীয়ভাবে ইনস্টলড পাইথন মডিউলগুলির একটি তালিকা পেতে পারি?


995

আমি পাইথন মডিউলগুলির একটি তালিকা পেতে চাই, যা আমার পাইথন ইনস্টলেশন (ইউএনআইএক্স সার্ভার) এ রয়েছে।

আপনি কীভাবে আপনার কম্পিউটারে পাইথন মডিউলগুলির একটি তালিকা ইনস্টল করতে পারেন?


76
আপনি কেবল >>> সহায়তা () এবং তারপরে >>> মডিউলগুলি করতে পারেন
জুলিয়াস নিউম্যান

1
বিকল্প আছে? সাহায্য () আমার জন্য ঝুলছে।
পাওলো কারভালহো

2
এই উত্তরগুলির অনেকগুলি ধরে নেওয়া যায় যে আপনার একটি কমান্ড লাইনে অ্যাক্সেস রয়েছে। আপনি যদি এডাব্লুএস ল্যাম্বদা ব্যবহার করেন তবে আপনাকে পাইথনের অভ্যন্তর থেকে এটি করতে হবে। দেখুন stackoverflow.com/a/54939905/117471
ব্রুনো Bronosky

উত্তর:


610

সমাধান

পিপ> 10.0 ব্যবহার করবেন না!

pip freezeপাইথনের স্ক্রিপ্ট থেকে পছন্দসই তালিকা পাওয়ার জন্য আমার 50 সেন্ট :

import pip
installed_packages = pip.get_installed_distributions()
installed_packages_list = sorted(["%s==%s" % (i.key, i.version)
     for i in installed_packages])
print(installed_packages_list)

একটি (খুব দীর্ঘ) এক লাইনার হিসাবে:

sorted(["%s==%s" % (i.key, i.version) for i in pip.get_installed_distributions()])

প্রদান:

['behave==1.2.4', 'enum34==1.0', 'flask==0.10.1', 'itsdangerous==0.24', 
 'jinja2==2.7.2', 'jsonschema==2.3.0', 'markupsafe==0.23', 'nose==1.3.3', 
 'parse-type==0.3.4', 'parse==1.6.4', 'prettytable==0.7.2', 'requests==2.3.0',
 'six==1.6.1', 'vioozer-metadata==0.1', 'vioozer-users-server==0.1', 
 'werkzeug==0.9.4']

ব্যাপ্তি

এই সমাধান সিস্টেম সুযোগ অথবা একটি ভার্চুয়াল পরিবেশ সুযোগ ক্ষেত্রে প্রযোজ্য হয় এবং কভার প্যাকেজ দ্বারা ইনস্টল setuptools, pipএবং ( নাউযুবিল্লাহ ) easy_install

আমার ব্যবহারের কেস

আমি এই কলটির ফলাফলটি আমার ফ্লাস্ক সার্ভারে যুক্ত করেছি, তাই যখন আমি এটির সাথে কল করি http://example.com/exampleServer/environmentতখন সার্ভারের ভ্যুচুয়ালেনভে প্যাকেজগুলির তালিকা ইনস্টল করব। এটি ডিবাগিংকে পুরোপুরি সহজ করে তোলে।

আদেশ সহকারে

আমি এই কৌশলটির একটি অদ্ভুত আচরণ লক্ষ্য করেছি - পাইথন ইন্টারপ্রেটারকে যখন একই ডিরেক্টরিতে একটি setup.pyফাইল হিসাবে ডাকা হয় তখন এটি ইনস্টল করা প্যাকেজটি তালিকাভুক্ত করে না setup.py

ধাপ পুনর্গঠন কর:

ভার্চুয়াল পরিবেশ তৈরি করুন
$ cd /tmp
$ virtualenv test_env
New python executable in test_env/bin/python
Installing setuptools, pip...done.
$ source test_env/bin/activate
(test_env) $ 
সাথে গিট রেপো ক্লোন করুন setup.py
(test_env) $ git clone https://github.com/behave/behave.git
Cloning into 'behave'...
remote: Reusing existing pack: 4350, done.
remote: Total 4350 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (4350/4350), 1.85 MiB | 418.00 KiB/s, done.
Resolving deltas: 100% (2388/2388), done.
Checking connectivity... done.

আমাদের সাথে আচরণ করা setup.pyহয়েছে /tmp/behave:

(test_env) $ ls /tmp/behave/setup.py
/tmp/behave/setup.py
গিট রেপো থেকে পাইথন প্যাকেজ ইনস্টল করুন
(test_env) $ cd /tmp/behave && pip install . 
running install
...
Installed /private/tmp/test_env/lib/python2.7/site-packages/enum34-1.0-py2.7.egg
Finished processing dependencies for behave==1.2.5a1

যদি আমরা উপরোক্ত সমাধানটি চালিয়ে যাই /tmp

>>> import pip
>>> sorted(["%s==%s" % (i.key, i.version) for i in pip.get_installed_distributions()])
['behave==1.2.5a1', 'enum34==1.0', 'parse-type==0.3.4', 'parse==1.6.4', 'six==1.6.1']
>>> import os
>>> os.getcwd()
'/private/tmp'

যদি আমরা উপরোক্ত সমাধানটি চালিয়ে যাই /tmp/behave

>>> import pip
>>> sorted(["%s==%s" % (i.key, i.version) for i in pip.get_installed_distributions()])
['enum34==1.0', 'parse-type==0.3.4', 'parse==1.6.4', 'six==1.6.1']
>>> import os
>>> os.getcwd()
'/private/tmp/behave'

behave==1.2.5a1দ্বিতীয় উদাহরণ থেকে হারিয়েছে, কারণ কাজ ডিরেক্টরি ধারণকারী behaveএর setup.pyফাইল।

ডকুমেন্টেশনে আমি এই বিষয়ে কোনও রেফারেন্স পাইনি find সম্ভবত আমি এটির জন্য একটি বাগ খুলব।


5
এই উত্তরের জন্য আপনাকে ধন্যবাদ! আমি মনে করি এটি প্রশ্নের উত্তর আরও ভাল কারণ আমি "স্থানীয়ভাবে" ইনস্টলড পাইথন মডিউলগুলি জিজ্ঞাসা করি। পিপ হিমায়িত সবসময় যাওয়ার উপায় হয় না। এটি আরও ভাল কাজ করে - আমি মনে করি।
লিও লোপোল্ড হার্টজ 준영

3
@ মাসি এই সমাধানটির সাবধানতার বিস্তারিত ব্যাখ্যা যোগ করেছেন। এটা সত্যিই একটি অদ্ভুত এক।
আদম মতান

21
একটি বিকল্প:import pkg_resources; installed_packages = [(d.project_name, d.version) for d in pkg_resources.working_set]
ইবোলিয়েন

14
পিপ 10 হিসাবে, এই উত্তরটি আর কাজ করবে না। @ ইবোলিয়েনের মন্তব্যে বিকল্প কমান্ডগুলি কাজ করে যা দেখায়। আমি একই উপসংহারে এসে নীচে সম্পূর্ণ সংশোধিত কোড পোস্ট করেছি।
বড়_আল_এক্স_এক্স_এক্স

5
পাইপের সাম্প্রতিক সংস্করণগুলিতে, এটি কাজ করবে না, একটি ত্রুটি বার্তা বলছে AttributeError: module 'pip' has no attribute 'get_installed_distributions'
হ্যালো গুডবাই

1036
help('modules')

পাইথন শেল / প্রম্পটে।


10
@ ডিএফ pydoc modulesকাজ করে। আপনার এটি উত্তর হিসাবে জমা দেওয়া উচিত।
আবিজার্ন

37
আমাকে সেগ দোষ দিয়েছে!
জানবাড়ি

3
নোবার, জানব্রি, @ জো ফ্রেম্বাচ: উবুন্টুতে? এখানে একটি বাগ বর্ণিত আছে: বাগস.লানচপ্যাড.এন.উবন্টু
ক্রিস্টোফিড

2
মডিউলগুলি কোথায় ইনস্টল করা হয়েছে এবং বর্তমান সংস্করণটি কী কী সম্পর্কে আমি অতিরিক্ত তথ্য পেতে পারি?
কৌতূহল

5
python -c 'help("modules")'
কেনারব

285

এখন, এই পদ্ধতিগুলি আমি নিজে চেষ্টা করেছিলাম এবং ঠিক কীভাবে বিজ্ঞাপন দেওয়া হয়েছিল তা পেয়েছি: সমস্ত মডিউল।

হায়, সত্যিই আপনি stdlib সম্পর্কে খুব একটা পাত্তা দিচ্ছেন না, পাইথন ইনস্টলটি দিয়ে আপনি কী পান তা আপনি জানেন।

সত্যই, আমি যে জিনিসটি ইনস্টল করেছি তা চাই ।

আশ্চর্যজনকভাবে আসলে কী কাজ করা হয়েছিল তা ঠিক:

pip freeze

যা ফিরে এসেছে:

Fabric==0.9.3
apache-libcloud==0.4.0
bzr==2.3b4
distribute==0.6.14
docutils==0.7
greenlet==0.3.1
ipython==0.10.1
iterpipes==0.4
libxml2-python==2.6.21

আমি "আশ্চর্যরূপে" বলছি কারণ প্যাকেজ ইনস্টল সরঞ্জামটি সঠিকভাবে এই কার্যকারিতাটি সন্ধান করার প্রত্যাশা করবে, যদিও এটি 'ফ্রিজ' নামে নয় তবে পাইথন প্যাকেজিংটি এতটাই অদ্ভুত, যে আমি এই সরঞ্জামটি বোধগম্য করেছি fla পাইপ 0.8.2, পাইথন 2.7।


4
নামটির পিছনে ধারণাটি হ'ল আপনি এই মুহুর্তে ইনস্টল করা একটি "হিমায়িত" স্ন্যাপশট পাবেন যা আপনি পরে ভিন্ন পরিবেশে ঠিক একই মডিউল ইনস্টল করার জন্য পিপে ফিরে ফিড করতে পারেন।
রায়ান সি। থম্পসন

আরশ, আপনি উইন্ডোতেও পাইপ ইনস্টল করতে পারেন! প্রথমে সেটআপলগুলি ইনস্টল করুন এবং তারপরে পিপ ইনস্টল করতে ইজি_ইনস্টল ব্যবহার করুন :)
গাওবুল

এটি দুর্দান্ত, তবে মনে হয় আমি ইনস্টল করা কিছু লাইব্রেরি মিস করছি। উদাহরণস্বরূপ, এটি পাইকিউটি তালিকাভুক্ত করে না।
জুনুক্সেক্স

8
পাইপ 1.3 থেকে শুরু করে তালিকা কমান্ড রয়েছে।
পাইওটর ডব্রোগোস্ট

এটা কাজ করে। অজগর কি অগোছালো। তারা কেন তাদের কাজ একসাথে না পেয়ে এবং জেলগুলিতে বিদ্যমান সামগ্রীর মতো সমাধান নিয়ে আসতে পারে না? (জেমফাইল, বান্ডিলার, আরভিএম)
দিমিত্রিস

106

পাইপ সংস্করণ 1.3 থেকে, আপনি এতে অ্যাক্সেস পেয়েছেন:

pip list

যা "পাইপ হিম" এর সিনট্যাকটিক চিনি বলে মনে হচ্ছে। এটি আপনার ইনস্টলেশন বা ভার্চুয়ালেনভের বিশেষত সমস্ত মডিউলগুলির সংস্করণ সংখ্যাগুলির সাথে তালিকাবদ্ধ করবে। দুর্ভাগ্যক্রমে এটি কোনও মডিউলের বর্তমান সংস্করণ নম্বর প্রদর্শন করে না, এটি আপনার থালাগুলি ধৌত করে না বা আপনার জুতো ঝলমল করে না।


4
এখানে আলোচিত এবং বিশ্বব্যাপী সাইট প্যাকেজগুলির pip list --localমধ্যে পার্থক্য করার জন্যও রয়েছে । virtualenv
আইওনিস ফিলিপিস 18

1
এখন পর্যন্ত সেরা। এটি সংস্করণগুলিও পুনরুদ্ধার করে।
আরিজমান

pip listসবচেয়ে সহজ এবং সেরা। এখানে বিকল্প এবং বিশদটি রয়েছে।
লেবি বাগুলে

86
  • ইন ipythonআপনি "টাইপ করতে পারেন importTab"।

  • স্ট্যান্ডার্ড পাইথন ইন্টারপ্রেটারে আপনি " help('modules')" টাইপ করতে পারেন ।

  • কমান্ড-লাইনে, আপনি ব্যবহার করতে পারেন ।pydoc modules

  • একটি স্ক্রিপ্টে, কল করুন pkgutil.iter_modules()


5
pkgutil.iter_modules()কাজ করে, উপরের পাইপ সমাধানটি সমস্ত প্যাকেজ তালিকাভুক্ত করে না, কেবল পাইপের মাধ্যমে ইনস্টল করা আছে।
মেটাপ্যাচার

2
অসাধারণ! আমি মনে করি যেহেতু প্রশ্ন জিজ্ঞাসা করা হয়েছিল, তারা নথির উন্নতি করেছে। পাইডোক মডিউল স্প্যাম মডিউলগুলির ডক্সে স্প্যাম অনুসন্ধান করে। শেষ পয়েন্টটি আপনাকে মডিউলটি ব্যবহার করার জন্য পর্যাপ্ত তথ্য দেয় বলে মনে হচ্ছে। @ মডেলচার আপনি কীভাবে ইনস্টলিত সমস্ত স্থানীয় মডিউলকে পিকগুইটি.আইটার_মডিউল () সাহায্যে ('মডিউল') দ্বারা স্টিলিবের বিশাল তালিকা নয়) তালিকাভুক্ত করতে পারেন, দয়া করে একটি উদাহরণ দিতে পারেন ?
লিও লোপোল্ড হার্টজ 준영

2
@ LéoLéopoldHertz এই স্নিপেট চেষ্টা 준영: python -c 'import pkgutil;print [x[1] for x in list(pkgutil.iter_modules())]'। এটি সত্যই বড় একটি পাইথন তালিকা হিসাবে সমস্ত মডিউল নাম ডাম্প করা উচিত। x[1]বিট দ্বারা উত্পন্ন tuples এর মডিউল নাম উপড়ে করতে ব্যবহৃত হয় pkgutil.iter_modules()
ফিলিপ কনরাড

76

আমি বর্তমানে এটি ব্যবহৃত ব্যবহৃত মডিউলগুলি দেখতে ব্যবহার করি:

import sys as s
s.modules.keys()

যা আপনার অজগরটিতে চলছে সমস্ত মডিউল দেখায়।

সমস্ত অন্তর্নির্মিত মডিউলগুলির জন্য:

s.modules

যা একটি ডিক যা সমস্ত মডিউল এবং আমদানি করে containing


2
# আপনি সয়েস "এস হিসাবে আমদানি করুন এস" এর পরে আপনি মুদ্রণ করতে পারেন: প্রিন্ট sys.modules.keys ()
ড্যান ইভান্স

আমার পোস্টটি কেন সম্পাদনা করা হয়েছিল তা নিশ্চিত নয়, তবে পূর্বের পোস্টগুলিতে ভুলগুলি সংশোধন করার জন্য আমি পোস্ট করা তথ্যটি ব্যবহার করার জন্য আপনাকে ধন্যবাদ আপনি সহায়তা () বনাম সহায়তা ('') ব্যবহার করলে আপনি ত্রুটিগুলি ফিরিয়ে আনবেন। এটি দির ('') ও সায়স ('') ইত্যাদির জন্যও যায়। আশা করি এটি সহায়তা করে এবং সরানো হয়নি।
ড্যান ইভানস

আমার শেষ পোস্টটি উপেক্ষা করুন, এই পোস্টটি সম্পাদিত হয়নি। আমি এখানে পাওয়া একটি অনুরূপ পোস্টের কথা ভাবছিলাম: stackoverflow.com/questions/139180/… বিভ্রান্তির জন্য দুঃখিত।
ড্যান ইভান্স

7
উত্সাহিত, কারণ এটি একমাত্র পদ্ধতি যা মনে হয় না যে বাধা সিস্টেমগুলিতে কাজ করে যা pydocনা হয় pipইনস্টল করে নি ((আমার ক্ষেত্রে একটি এনএএস) নেই।
টমাস

1
টমাসের সাথে একমত। আমি repl.it ব্যবহার করছি, উদাহরণস্বরূপ, এটি পরিবেশেরও একটি সীমাবদ্ধ ধরণের। help('modules')আমার জন্য কোনও প্রতিক্রিয়া ছাড়াই কেবল ঝুলে আছে। তবে এই পদ্ধতিটি sysপুরোপুরি কাজ করে
সের্গেই কোলডিয়াজহনি

63

সাধারণ শেলটিতে কেবল ব্যবহার করুন

pydoc modules

এটি প্রদর্শিত হয় যে উপরেরগুলি কেবল 'নিক্স প্ল্যাটফর্মগুলিতে কাজ করে। যাইহোক, আমি স্ক্রিপ্টটি খুঁজে পেয়েছি এবং নিম্নলিখিতটি কমান্ডটি গ্রহণ করে চালিয়েছি: c: \ bin \ pythos_2.7 \ lib \ pydoc.py মডিউলগুলি - সেই তালিকাটি চিরকালের জন্য তৈরি হয়েছিল, ফর্ম্যাটটি সফল হয় এবং এটি ইনস্টলিত সংস্করণ বাদ দেয় সংখ্যা। আমি পাশ করব.
ডেভিড এ। গ্রে

2
@ ডেভিডএ.গ্রে পাইথন 3 দিয়ে উইন্ডোজ মেশিনে সবেমাত্র এটি চেষ্টা করেছিলেন এবং এটি বাস্তবে কাজ করে। পাইথন উইন্ডোজ লঞ্চার ব্যবহার করে py -m pydoc modulesআপনি সেমিডি বা পাওয়ারশেল করতে পারেন ।
ভি কে কে

pydoc modulesপাইথন ৩.6 এর সাথে উইন্ডোজ 10 এ আমার পক্ষে কাজ করেনি, তবে @VKK পরিবর্তন: সেমিডি py -m pydoc modules/ পাওয়ারশেলটিতে কাজ করে।
মার্টিন

41

পিপ 10 হিসাবে, গৃহীত উত্তরটি আর কাজ করবে না। উন্নয়ন দল get_installed_distributionsরুটিনে অ্যাক্সেস সরিয়ে দিয়েছে । setuptoolsএকই জিনিসটি করার জন্য একটি বিকল্প ফাংশন রয়েছে । এখানে একটি বিকল্প সংস্করণ যা পিপ 10 এর সাথে কাজ করে:

import pkg_resources
installed_packages = pkg_resources.working_set
installed_packages_list = sorted(["%s==%s" % (i.key, i.version)
     for i in installed_packages])
print(installed_packages_list)

এটি যদি পাইপের পূর্ববর্তী সংস্করণগুলিতেও কাজ করে বা কাজ করে না তবে দয়া করে আমাকে জানান।


2
আমি এই সমাধানটি অনুসন্ধান করছি এবং আমার মস্তিষ্ককে পিকেজি_সোর্সগুলি বের করার চেষ্টা করছি rac আমি যদি একাধিকবার এটি উত্সাহ দিতে পারতাম। আপনাকে ধন্যবাদ, @ বিগ_আল_এক্স_এক্স! আপডেট: বাদে .... যখন আমি আমার ভার্চুয়াল পরিবেশে একটি 'পাইপ ফ্রিজ' করি এবং এটির আউটপুটটির সাথে তুলনা করি, এমন প্যাকেজগুলি নেই যা রয়েছে। কেন যে ঘটতে পারে তার কোনও চিন্তা?
সংখ্যা

@ নাম্বারওয়ান - আমি আপনার পক্ষে এটির জন্য আনন্দিত। আমি দুঃখিত, তবে এর সাথে স্বতন্ত্রতার কোনও উত্তর আমার কাছে নেই pip freeze; এই বিষয়ে আমার জ্ঞানের গভীরতা বরং সীমাবদ্ধ। আমি সল্ট-বিভ্রান্ত হয়ে সমাধানে যাওয়ার পথে আমার গ্রহণযোগ্য উত্তরটি আমার পক্ষে কাজ না করায় এবং আমি এটি সম্পর্কিত একটি উত্তরের সাথে একত্রিত করার চেষ্টা করেছি setuptoolsএবং এটি কাজে লাগিয়েছি।
বড়_আল_এল_এক্স x

github.com/pypa/pip/issues/5243 - এতে সরানো অ্যাক্সেস নিয়ে উন্নয়ন দল আলাপ get_installed_distributions routine
bl79

@ bl79 - আমি মনে করি এটিই ঠিক সেই জায়গা যেখানে আমি রেফারেন্স পেয়েছি setuptools
বড়_আল_এক্স_এক্স

@ বিগ_আল_এক্স: ঠিক আছে, আমি সেটআপলগুলি অপশনের আশেপাশে কাজ করেছি (যা আমার প্রয়োজনের জন্য অপ্রয়োজনীয় ছিল) এবং আমি এটি নিয়ে গিয়েছিলাম: ইনস্টলড_পেকস = সাবপ্রসেসকসিচ_আউটপুট (['পিপ', 'ফ্রিজ']) আমি ঠিক ঠিক তাই করি এটা করার দরকার ছিল .... ইয়ে !!
সংখ্যাটি

26

পাইথন শেলটিতে যদি ইনস্টল করা প্যাকেজগুলি তালিকাভুক্ত করতে হয় তবে আমরা helpনিম্নলিখিত কমান্ডটি ব্যবহার করতে পারি

>>help('modules package')

22

আমি সাধারণত pip listপ্যাকেজগুলির তালিকা পেতে (সংস্করণ সহ) ব্যবহার করি।

এটি অবশ্যই ভার্চুয়াল পরিবেশে কাজ করে। কেবল ভার্চুয়াল পরিবেশে কি ইনস্টল করা হয়েছে তা দেখাতে (বৈশ্বিক প্যাকেজ নয়) ব্যবহার করুন pip list --local

pip listবেশ কয়েকটি ভাল উদাহরণ সহ সমস্ত উপলভ্য বিকল্পগুলি দেখায় এখানে ডকুমেন্টেশন রয়েছে


13

Pkgutil.iter_modules ব্যবহার করে খুব সাধারণ অনুসন্ধান

from pkgutil import iter_modules
a=iter_modules()
while True:
    try: x=a.next()
    except: break
    if 'searchstr' in x[1]: print x[1]

লুপের পরিবর্তে ব্যবহার করার কোনও কারণ আছে কি? আমি ব্যবহার করে লিখেছি for m in iter_modules()এবং এটি কাজ করে।
জোওও পন্টে

13

উইন্ডোতে, এটি সেন্টিমিটারে প্রবেশ করান

c:\python\libs>python -m pip freeze

এটি আমার ব্যবহার করে কাজ করেছে: পাইথন 3-মি পিপ ফ্রিজ - অজগর 3.5.3 এর জন্য।
dpminusa

এটি ভালভাবে কাজ করে এবং আপনার ভেরিয়েবলগুলি সংজ্ঞায়িত করা হয় তবে আপনাকে
লিবিব

12

আমি ওএস এক্স-তে একটি কাস্টম ইনস্টলড পাইথন ২.7 এ গিয়েছি installed এটি ইনস্টলড মডিউলগুলি (সহায়তা এবং পাইডোক উভয় ব্যবহার করে) তালিকাভুক্ত করার জন্য এক্স 11 প্রয়োজন।

এক্স 11 ইনস্টল না করেই সমস্ত মডিউল তালিকাভুক্ত করতে আমি পাইডোককে HTTP- সার্ভার হিসাবে চালিয়েছি, অর্থাত:

pydoc -p 12345

তারপরে http://localhost:12345/সমস্ত মডিউল দেখতে সাফারিকে নির্দেশ দেওয়া সম্ভব ।



12

এইটা সাহায্য করবে

টার্মিনাল বা আইপিথনে টাইপ করুন:

help('modules')

তারপর

In [1]: import                      #import press-TAB
Display all 631 possibilities? (y or n)
ANSI                   audiodev               markupbase
AptUrl                 audioop                markupsafe
ArgImagePlugin         avahi                  marshal
BaseHTTPServer         axi                    math
Bastion                base64                 md5
BdfFontFile            bdb                    mhlib
BmpImagePlugin         binascii               mimetools
BufrStubImagePlugin    binhex                 mimetypes
CDDB                   bisect                 mimify
CDROM                  bonobo                 mmap
CGIHTTPServer          brlapi                 mmkeys
Canvas                 bsddb                  modulefinder
CommandNotFound        butterfly              multifile
ConfigParser           bz2                    multiprocessing
ContainerIO            cPickle                musicbrainz2
Cookie                 cProfile               mutagen
Crypto                 cStringIO              mutex
CurImagePlugin         cairo                  mx
DLFCN                  calendar               netrc
DcxImagePlugin         cdrom                  new
Dialog                 cgi                    nis
DiscID                 cgitb                  nntplib
DistUpgrade            checkbox               ntpath

এটি গ্রহণযোগ্য উত্তর হওয়া উচিত! এক লাইন :)
অলমোস্টপিট

9

এই সমাধান মডিউল উপর ভিত্তি করে প্রাথমিক হয় importlibএবং pkgutilএবং CPython 3.4 এবং CPython 3.5 সঙ্গে কাজ, কিন্তু CPython 2 জন্য কোন সমর্থন আছে।


ব্যাখ্যা

  1. sys.builtin_module_names- সমস্ত অন্তর্নির্মিত মডিউলগুলির নাম দিন (আমার উত্তর এখানে দেখুন )
  2. pkgutil.iter_modules() - সমস্ত উপলব্ধ মডিউল সম্পর্কে একটি তথ্য প্রদান করে
  3. importlib.util.find_spec() - উপস্থিত থাকলে মডিউল আমদানি সম্পর্কে একটি তথ্য প্রদান করে
  4. BuiltinImporter- অন্তর্নির্মিত মডিউলগুলির জন্য একটি আমদানিকারক ( ডক্স )
  5. SourceFileLoader- একটি স্ট্যান্ডার্ড পাইথন মডিউলটির জন্য আমদানিকারকের (ডিফল্টরূপে এক্সটেনশন * .py) থাকে ( ডক্স )
  6. ExtensionFileLoader- ভাগ করা লাইব্রেরি হিসাবে মডিউলগুলির জন্য একজন আমদানিকারক (সি বা সি ++ তে লিখিত)

সম্পূর্ণ কোড

import sys
import os
import shutil
import pkgutil
import importlib
import collections

if sys.version_info.major == 2:
    raise NotImplementedError('CPython 2 is not supported yet')


def main():

    # name this file (module)
    this_module_name = os.path.basename(__file__).rsplit('.')[0]

    # dict for loaders with their modules
    loaders = collections.OrderedDict()

    # names`s of build-in modules
    for module_name in sys.builtin_module_names:

        # find an information about a module by name
        module = importlib.util.find_spec(module_name)

        # add a key about a loader in the dict, if not exists yet
        if module.loader not in loaders:
            loaders[module.loader] = []

        # add a name and a location about imported module in the dict
        loaders[module.loader].append((module.name, module.origin))

    # all available non-build-in modules
    for module_name in pkgutil.iter_modules():

        # ignore this module
        if this_module_name == module_name[1]:
            continue

        # find an information about a module by name
        module = importlib.util.find_spec(module_name[1])

        # add a key about a loader in the dict, if not exists yet
        loader = type(module.loader)
        if loader not in loaders:
            loaders[loader] = []

        # add a name and a location about imported module in the dict
        loaders[loader].append((module.name, module.origin))

    # pretty print
    line = '-' * shutil.get_terminal_size().columns
    for loader, modules in loaders.items():
        print('{0}\n{1}: {2}\n{0}'.format(line, len(modules), loader))
        for module in modules:
            print('{0:30} | {1}'.format(module[0], module[1]))


if __name__ == '__main__':
    main()

ব্যবহার

সিপিথন ৩.৫ এর জন্য (বিচ্ছিন্ন)

$ python3.5 python_modules_info.py 
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
30: <class '_frozen_importlib.BuiltinImporter'>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
_ast                           | built-in
_codecs                        | built-in
_collections                   | built-in
_functools                     | built-in
_imp                           | None
_io                            | built-in
_locale                        | built-in
_operator                      | built-in
_signal                        | built-in
_sre                           | built-in
_stat                          | built-in
_string                        | built-in
_symtable                      | built-in
_thread                        | built-in
(****************************truncated*******************************)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
227: <class '_frozen_importlib_external.SourceFileLoader'>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
__future__                     | /usr/local/lib/python3.5/__future__.py
_bootlocale                    | /usr/local/lib/python3.5/_bootlocale.py
_collections_abc               | /usr/local/lib/python3.5/_collections_abc.py
_compat_pickle                 | /usr/local/lib/python3.5/_compat_pickle.py
_compression                   | /usr/local/lib/python3.5/_compression.py
_dummy_thread                  | /usr/local/lib/python3.5/_dummy_thread.py
_markupbase                    | /usr/local/lib/python3.5/_markupbase.py
_osx_support                   | /usr/local/lib/python3.5/_osx_support.py
_pydecimal                     | /usr/local/lib/python3.5/_pydecimal.py
_pyio                          | /usr/local/lib/python3.5/_pyio.py
_sitebuiltins                  | /usr/local/lib/python3.5/_sitebuiltins.py
(****************************truncated*******************************)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
64: <class '_frozen_importlib_external.ExtensionFileLoader'>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
_bisect                        | /usr/local/lib/python3.5/lib-dynload/_bisect.cpython-35m-x86_64-linux-gnu.so
_bz2                           | /usr/local/lib/python3.5/lib-dynload/_bz2.cpython-35m-x86_64-linux-gnu.so
_codecs_cn                     | /usr/local/lib/python3.5/lib-dynload/_codecs_cn.cpython-35m-x86_64-linux-gnu.so
_codecs_hk                     | /usr/local/lib/python3.5/lib-dynload/_codecs_hk.cpython-35m-x86_64-linux-gnu.so
_codecs_iso2022                | /usr/local/lib/python3.5/lib-dynload/_codecs_iso2022.cpython-35m-x86_64-linux-gnu.so
(****************************truncated*******************************)

সিপিথন ৩.৪ এর জন্য (বিচ্ছিন্ন)

$ python3.4 python_modules_info.py
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
54: <class '_frozen_importlib.BuiltinImporter'>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
_ast                           | built-in
_bisect                        | built-in
_codecs                        | built-in
_collections                   | built-in
_datetime                      | built-in
_elementtree                   | built-in
_functools                     | built-in
_heapq                         | built-in
_imp                           | None
_io                            | built-in
_locale                        | built-in
_md5                           | built-in
_operator                      | built-in
_pickle                        | built-in
_posixsubprocess               | built-in
_random                        | built-in
(****************************truncated*******************************)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
246: <class '_frozen_importlib.SourceFileLoader'>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
__future__                     | /usr/lib/python3.4/__future__.py
_bootlocale                    | /usr/lib/python3.4/_bootlocale.py
_collections_abc               | /usr/lib/python3.4/_collections_abc.py
_compat_pickle                 | /usr/lib/python3.4/_compat_pickle.py
_dummy_thread                  | /usr/lib/python3.4/_dummy_thread.py
_markupbase                    | /usr/lib/python3.4/_markupbase.py
_osx_support                   | /usr/lib/python3.4/_osx_support.py
_pyio                          | /usr/lib/python3.4/_pyio.py
(****************************truncated*******************************)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
44: <class '_frozen_importlib.ExtensionFileLoader'>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
_bz2                           | /usr/lib/python3.4/lib-dynload/_bz2.cpython-34m-x86_64-linux-gnu.so
_codecs_cn                     | /usr/lib/python3.4/lib-dynload/_codecs_cn.cpython-34m-x86_64-linux-gnu.so
_codecs_hk                     | /usr/lib/python3.4/lib-dynload/_codecs_hk.cpython-34m-x86_64-linux-gnu.so
_codecs_iso2022                | /usr/lib/python3.4/lib-dynload/_codecs_iso2022.cpython-34m-x86_64-linux-gnu.so
_codecs_jp                     | /usr/lib/python3.4/lib-dynload/_codecs_jp.cpython-34m-x86_64-linux-gnu.so
_codecs_kr                     | /usr/lib/python3.4/lib-dynload/_codecs_kr.cpython-34m-x86_64-linux-gnu.so
_codecs_tw                     | /usr/lib/python3.4/lib-dynload/_codecs_tw.cpython-34m-x86_64-linux-gnu.so
_crypt                         | /usr/lib/python3.4/lib-dynload/_crypt.cpython-34m-x86_64-linux-gnu.so
(****************************truncated*******************************)

আপনি আদম এর পদক্ষেপ এখানে আপনার পদ্ধতির তুলনা দয়া করে করতে পারেন stackoverflow.com/a/23885252/54964
Léo লেয়পল হের্ৎস 준영

@ লো লোপল্ড হার্টজ, আপনার এটার দরকার কেন?
PADYMKO

আপনার দৃষ্টিভঙ্গি অ্যাডামের পদ্ধতির চেয়ে আরও ভাল / খারাপ কী করে তা বুঝতে।
লিও লোপোল্ড হার্টজ 준영

1
@ ল্যাও ল্যাপোপল্ড হার্টজ একটি সংক্ষিপ্ত উত্তর: একটি উত্পাদনে এটি নিজে চেষ্টা করুন এবং নিজেই সিদ্ধান্তে আঁকুন। দীর্ঘ উত্তর: pipপাইথনে লিখিত সফ্টওয়্যার প্যাকেজ ইনস্টল ও পরিচালনা করতে ব্যবহৃত প্যাকেজ পরিচালনা ব্যবস্থার উপর ভিত্তি করে অ্যাডামের পদ্ধতির উপর ভিত্তি করে এবং pip.get_installed_distributions()পাইপের সাহায্যে ইনস্টল করা ফলাফলের মডিউল। আমার উত্তরটি পাইথনের স্ট্যান্ডার্ড লাইব্রেরির উপর ভিত্তি করে আমদানির জন্য উপলব্ধ সমস্ত মডিউলকে কভার করে। একটি বড় অসুবিধা আমার উত্তর - সিপিথন ২ এর জন্য কোনও সমর্থন নেই
প্যাডেমিকো

1
@ লোও ল্যাপোপল্ড হার্টজ আপনি ভুল করছেন, এটি তা করে। আমি এটি আমার কম্পিউটারে পরীক্ষা করেছি। আমার উত্তরের বিশেষ অর্থ রয়েছে **truncated**, যেখানে একটি আউটপুট কেটে দেওয়া হয়েছে। হতে পারে আপনি সাবধান হন না, তবে এটি যদি তা না করে তবে আপনার সিস্টেম এবং পাইথন বাস্তবায়ন সম্পর্কে আমাকে একটি তথ্য প্রেরণ করার জন্য, আমি এটি ঠিক করার জন্য অতিরিক্ত গবেষণা করব research
প্যাডেমিকো

9

সতর্কতা: অ্যাডাম মাতান পিপ> 10.0 এ এই ব্যবহারকে নিরুৎসাহিত করে। এছাড়াও, নীচে @ সিনোরোকের মন্তব্য পড়ুন

এটি আদম মতানের জবাব (স্বীকৃত) দ্বারা অনুপ্রাণিত হয়েছিল :

import tabulate
try:
  from pip import get_installed_distributions
except:
  from pip._internal.utils.misc import get_installed_distributions

tabpackages = []
for _, package in sorted([('%s %s' % (i.location, i.key), i) for i in get_installed_distributions()]):
  tabpackages.append([package.location, package.key, package.version])

print(tabulate.tabulate(tabpackages))

যা তখন আকারে একটি টেবিল প্রিন্ট করে

19:33 pi@rpi-v3 [iot-wifi-2] ~/python$ python installed_packages.py
-------------------------------------------  --------------  ------
/home/pi/.local/lib/python2.7/site-packages  enum-compat     0.0.2
/home/pi/.local/lib/python2.7/site-packages  enum34          1.1.6
/home/pi/.local/lib/python2.7/site-packages  pexpect         4.2.1
/home/pi/.local/lib/python2.7/site-packages  ptyprocess      0.5.2
/home/pi/.local/lib/python2.7/site-packages  pygatt          3.2.0
/home/pi/.local/lib/python2.7/site-packages  pyserial        3.4
/usr/local/lib/python2.7/dist-packages       bluepy          1.1.1
/usr/local/lib/python2.7/dist-packages       click           6.7
/usr/local/lib/python2.7/dist-packages       click-datetime  0.2
/usr/local/lib/python2.7/dist-packages       construct       2.8.21
/usr/local/lib/python2.7/dist-packages       pyaudio         0.2.11
/usr/local/lib/python2.7/dist-packages       tabulate        0.8.2
-------------------------------------------  --------------  ------

যা আপনি পরে সহজে উপলব্ধি যা প্যাকেজ আপনার সাথে এবং ছাড়াই ইনস্টল করতে দেয় sudo


একদিকে নোট: আমি লক্ষ্য করেছি যে আমি যখন একবার প্যাকেট ইনস্টল করি sudo এবং একবারে একটির প্রাধান্য লাগে যাতে অন্যটি তালিকাভুক্ত না হয় (কেবলমাত্র একটি অবস্থান দেখানো হয়)। আমি বিশ্বাস করি যে স্থানীয় ডিরেক্টরিতে কেবলমাত্র তখনই তালিকাবদ্ধ রয়েছে। এটি উন্নত করা যেতে পারে।


1
না। এটি প্রস্তাবিত নয়, এখানে দেখুন: পাইপ.পাইপা.আইও
স্টেবল

1
@ সিনোরোক এটি নির্দেশ করার জন্য আপনাকে ধন্যবাদ। 1 থেকে 3 পয়েন্টগুলি এই সমাধানটির জন্য প্রযোজ্য বলে মনে হচ্ছে না, কারণ এই স্ক্রিপ্টটি pipএকবার ব্যবহার এবং তারপরে প্রস্থান করার একমাত্র উদ্দেশ্য রয়েছে । এটি আচরণের পরিবর্তন হতে পারে এমন আরও একটি সমস্যা বলে মনে হয়।
ড্যানিয়েল এফ

সম্মত হলেন, কোনও সর্বজনীন এপিআই না থাকার কারণগুলি এই নির্দিষ্ট কোডের অংশে প্রযোজ্য না। তবে যেহেতু পাইপ কোনও পাবলিক এপিআইয়ের গ্যারান্টি দিতে বাধ্য নয় এটি তার অভ্যন্তরীণ এপিআই, কোড কাঠামো, ইত্যাদি পরে প্রকাশে মুক্ত করতে পারে, যেমন এটি ইতিমধ্যে হয়েছিল। এই কারণেই এই কোডটির পূর্ববর্তী অভ্যন্তরীণ কোড পুনর্গঠনটি ধরার চেষ্টা করা / বাদে চেষ্টা করা হয়েছে যা অভ্যন্তরীণ এপিআইগুলি অভ্যন্তরীণ এপিআইগুলি সর্বজনীন নয় ( _internal)। সব মিলিয়ে, এটি স্পষ্টতই কাজ করে তবে এটি খারাপ অভ্যাস। আরও ভাল বিকল্প আছে, কিছু এই প্রশ্নের অন্য উত্তরে রয়েছে।
sinoroc

1
"পাইপ" মডিউলটি না থাকলে এই স্ক্রিপ্টটি কাজ করবে না।
আলেকজান্ডার স্টোহর


6

যদি আপনার অ্যানাকোন্ডা পাইথন বিতরণ ইনস্টল থাকে তবে আপনি এটিও ব্যবহার করতে পারেন

$conda list

উপরে বর্ণিত সমাধানগুলি ছাড়াও।


আপনি কোথায় / এই লাইনটি চালাবেন?
হকিআইট

আপনি যদি আপনার ইউএনআইএক্স / ম্যাক ওএস এক্স মেশিনে থাকেন তবে আপনার টার্মিনালটি খুলুন এবং কেবল টাইপ করুন conda install, এটি কাজ করা উচিত :)
শ্রেয়াস

আমি একটি উইন্ডোজ 7 মেশিনে আছি আমি এটি আসলে আমার পথে পেয়েছি তবে কনডা.এক্সপি অ্যাপডাটা \ লোকাল \ কন্টিনিয়াম \ অ্যানাকোন্ডা \ স্ক্রিপ্টগুলিতে রয়েছে।
হাকইট

6
  1. সমস্ত উপলব্ধ মডিউল পেতে, চালান sys.modules
  2. সমস্ত ইনস্টল মডিউল পেতে (পড়ুন: দ্বারা ইনস্টল pip), আপনি তাকান হতে পারেpip.get_installed_distributions()

দ্বিতীয় উদ্দেশ্যে, উদাহরণ কোড:

import pip
for package in pip.get_installed_distributions():
    name = package.project_name # SQLAlchemy, Django, Flask-OAuthlib
    key = package.key # sqlalchemy, django, flask-oauthlib
    module_name = package._get_metadata("top_level.txt") # sqlalchemy, django, flask_oauthlib
    location = package.location # virtualenv lib directory etc.
    version = package.version # version number

Sys.modules কমান্ডটি নতুন ওএসএক্সের পাইথনটিতে কাজ করে না। NameError: নাম 'সিস্টেম' সংজ্ঞায়িত করা হয় না
লিও লোপল্ড হার্টজ

@ মাসি আপনার অর্থ /usr/bin/pythonবা পাইথন.আর.আর্গ থেকে এসেছে ? আগেরটির জন্য, আমি sys.modulesকোনও সমস্যা ছাড়াই ব্যবহার করতে পারি ।
ইগল করুন

মানে / ইউএসআর / বিন / পাইথন
লিও লোপল্ড হার্টজ 준영

@ মাসি আপনি এখনও এই সমস্যায় আগ্রহী কিনা তা নিশ্চিত নন। স্পষ্টতই আপনি এর system.modulesপরিবর্তে ব্যবহার করছেন sys.modules
ইগল

হাঃ হাঃ হাঃ. আমার ভুলটি হ'ল আমি মূলত সিস-প্যাকেজ আমদানি করিনি। পরিবর্তে চলমান sys আমদানি; sys.modules প্রত্যাশা অনুযায়ী কাজ করে।
লিও লোপোল্ড হার্টজ 준영

6

পিপ 20 এর মতো সাম্প্রতিক সংস্করণের জন্য

আপনার পাইথন সম্পাদক বা আইপিথনে নিম্নলিখিতটি চালান

import pkg_resources; 
installed_packages = {d.project_name: d.version for d in pkg_resources.working_set}
print(installed_packages)

অন্যান্য উত্তরগুলি পড়ুন এবং পাইথনের অভ্যন্তরে দ্রুত এবং সহজতম এই কম্বোটি একসাথে টানুন


4

পাইপ ফ্রিজে এটি সমস্ত প্যাকেজ সন্ধান করে তবে পাইথন প্যাকেজগুলি রয়েছে এমন সমস্ত পাথ তালিকাভুক্ত করতে কেবল নিম্নলিখিত কমান্ডটি লিখতে পারে।

>>> import site; site.getsitepackages()
['/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages']

4

বিড়ালের চামড়ার অনেক উপায় রয়েছে।

  • সবচেয়ে সহজ উপায় হ'ল pydocসরাসরি শেল থেকে ফাংশনটি ব্যবহার করে :
    pydoc modules

  • তবে আরও তথ্যের জন্য ডাকা টুলটি ব্যবহার করুন পাইপ-ডেট যা আপনাকে ইনস্টলেশনের তারিখগুলিও বলে দেয়।
    pip install pip-date


এখানে চিত্র বর্ণনা লিখুন


3

অনেক ধারণা আছে, প্রাথমিকভাবে আমি এই দুটি নিয়ে চিন্তা করছি:

বীচি

কনস: সর্বদা ইনস্টল করা হয় না

সাহায্যের ( 'মডিউল')

কনসোল: আউটপুট থেকে কনসোল; ভাঙ্গা মডিউলগুলির সাথে (উবুন্টু দেখুন ...) সেগফল্ট করতে পারে

বেসিক লাইব্রেরিগুলি ব্যবহার করে এবং পুরাতন অজগর ২.x এর সাথে সামঞ্জস্যপূর্ণ আমার একটি সহজ পদ্ধতির দরকার

এবং আমি আলো দেখতে পাচ্ছি: listmodules.py

2.5 তে ডকুমেন্টেশন সোর্স ডিরেক্টরিতে লুকানো একটি ছোট স্ক্রিপ্ট যা পাইথন ইনস্টলেশনের জন্য সমস্ত উপলব্ধ মডিউল তালিকাভুক্ত করে।

পেশাদাররা:

কেবলমাত্র ইমপি, সি, ওস, পুনরায় সময় ব্যবহার করে

পাইথন 1.5.2 এ চালানোর জন্য ডিজাইন করা এবং আরও নতুন

উত্স কোডটি সত্যই কমপ্যাক্ট, সুতরাং আপনি এটির সাথে সহজেই টিঙ্কিং করতে পারেন, উদাহরণস্বরূপ বগি মডিউলগুলির একটি ব্যতিক্রম তালিকা পাস করতে (সেগুলি আমদানির চেষ্টা করবেন না)


3

আমার এডাব্লুএস ল্যাম্বডায় ডিফল্টরূপে প্যাকেজগুলির নির্দিষ্ট সংস্করণটি খুঁজে পাওয়া দরকার। আমি এই পৃষ্ঠা থেকে ধারণাগুলির একটি ম্যাসআপ দিয়ে তা করেছি। আমি এটি উত্তরোত্তর জন্য ভাগ করছি।

import pkgutil

__version__ = '0.1.1'

def get_ver(name):
    try:
        return str(__import__(name).__version__)
    except:
        return None

def lambda_handler(event, context):
    return {
        'statusCode': 200,
        'body': [{
                   'path': m.module_finder.path,
                   'name': m.name,
                   'version': get_ver(m.name),
                 } for m in list(pkgutil.iter_modules())
                 #if m.module_finder.path == "/var/runtime" # Uncomment this if you only care about a certain path
                ],
    }

আমি যা আবিষ্কার করেছি তা হল যে প্রদত্ত বোটো 3 লাইব্রেরিটি পুরানো ছিল এবং আমার কোডটি ব্যর্থ হচ্ছিল তা আমার দোষ ছিল না। আমার প্রজেক্টে আমার কেবল বোটো 3 এবং বোটোকোর যুক্ত করা দরকার। তবে এটি না করে আমি আমার কোডটি খারাপ বলে ভেবে মাথা ঘুরিয়ে ফেলতাম।

{
  "statusCode": 200,
  "body": [
    {
      "path": "/var/task",
      "name": "lambda_function",
      "version": "0.1.1"
    },
    {
      "path": "/var/runtime",
      "name": "bootstrap",
      "version": null
    },
    {
      "path": "/var/runtime",
      "name": "boto3",
      "version": "1.9.42"
    },
    {
      "path": "/var/runtime",
      "name": "botocore",
      "version": "1.12.42"
    },
    {
      "path": "/var/runtime",
      "name": "dateutil",
      "version": "2.7.5"
    },
    {
      "path": "/var/runtime",
      "name": "docutils",
      "version": "0.14"
    },
    {
      "path": "/var/runtime",
      "name": "jmespath",
      "version": "0.9.3"
    },
    {
      "path": "/var/runtime",
      "name": "lambda_runtime_client",
      "version": null
    },
    {
      "path": "/var/runtime",
      "name": "lambda_runtime_exception",
      "version": null
    },
    {
      "path": "/var/runtime",
      "name": "lambda_runtime_marshaller",
      "version": null
    },
    {
      "path": "/var/runtime",
      "name": "s3transfer",
      "version": "0.1.13"
    },
    {
      "path": "/var/runtime",
      "name": "six",
      "version": "1.11.0"
    },
    {
      "path": "/var/runtime",
      "name": "test_bootstrap",
      "version": null
    },
    {
      "path": "/var/runtime",
      "name": "test_lambda_runtime_client",
      "version": null
    },
    {
      "path": "/var/runtime",
      "name": "test_lambda_runtime_marshaller",
      "version": null
    },
    {
      "path": "/var/runtime",
      "name": "urllib3",
      "version": "1.24.1"
    },
    {
      "path": "/var/lang/lib/python3.7",
      "name": "__future__",
      "version": null
    },
...

আমি যা আবিষ্কার করেছি তা তারা আনুষ্ঠানিকভাবে প্রকাশিত থেকে পৃথক ছিল । এটি লেখার সময়:

  • অপারেটিং সিস্টেম - অ্যামাজন লিনাক্স
  • এএমআই - amzn-ami-hvm-2017.03.1.20170812-x86_64-gp2
  • লিনাক্স কার্নেল - 4.14.77-70.59.amzn1.x86_64
  • জাভাস্ক্রিপ্টের জন্য AWS SDK - 2.290.0 \
  • পাইথনের জন্য এসডিকে (বোটো 3) - 3-1.7.74 বোটোকোর -১.10.74

1

স্থাপন

pip install pkgutil

কোড

import pkgutil

for i in pkgutil.iter_modules(None): # returns a tuple (path, package_name, ispkg_flag)
    print(i[1]) #or you can append it to a list

নমুনা আউটপুট:

multiprocessing
netrc
nntplib
ntpath
nturl2path
numbers
opcode
pickle
pickletools
pipes
pkgutil

1

এখানে পাইথন কোড সমাধানটি ইনস্টল করা মডিউলগুলির একটি তালিকা ফিরিয়ে দেবে। সংস্করণ নম্বর অন্তর্ভুক্ত করার জন্য কেউ কোডটি সহজেই সংশোধন করতে পারে।

import subprocess
import sys
from pprint import pprint

installed_packages = reqs = subprocess.check_output([sys.executable, '-m', 'pip', 'freeze']).decode('utf-8')
installed_packages = installed_packages.split('\r\n')
installed_packages = [pkg.split('==')[0] for pkg in installed_packages if pkg != '']
pprint(installed_packages)

-1

pip listপাইথন প্রোগ্রাম থেকে কীভাবে কল করবেন সে সম্পর্কে যে কেউ ভাবছেন আপনি নিম্নলিখিতটি ব্যবহার করতে পারেন:

import pip
pip.main(['list])  # this will print all the packages

না This এটি প্রস্তাবিত নয়, এখানে দেখুন: পাইপ.পাইপা.আইও
স্টেবল

-10

খোল থেকে

ls site-packages

যদি এটি সহায়ক না হয় তবে আপনি এটি করতে পারেন।

import sys
import os
for p in sys.path:
    print os.listdir( p )

এবং দেখুন যে কি উত্পাদন করে।


কোন সাইট-প্যাকেজ ডিরেক্টরি? এটি আরও ভাল করতে পারে: ls / usr / {স্থানীয় /,} lib / পাইথন $ (পাইথন -V 2> & 1 | কাট-ডি "" -f2 | কাট-ডি। -F1-2) / সাইট-প্যাকেজ
ভিজল্ট

এছাড়াও এটি বিল্ট-ইন মডিউলগুলি বা একটি কাস্টম পাইথনপথের মডিউলগুলি বা সেটআপলগুলিতে "বিকাশ মোড" ইত্যাদিতে ইনস্টল হওয়াগুলি প্রদর্শন করবে না
ডিএফ।

আমার /usr/local/lib/python2.5/site-packages খালি, যদিও আমি মডিউলগুলি ইনস্টল করেছি।
লিও লোপোল্ড হার্টজ 준영

14
এই নিম্নচিকিত উত্তর মোছার জন্য না। একটি সাধারণ উত্তর কেন ভুল বলে বিবেচিত হয় তা দেখার পক্ষে এটি সম্প্রদায়ের পক্ষে সহায়ক।
জেরেমি স্টেইন

1
@ জেরেমিস্টেইন একটি ভাল কৌশল (আরও সহায়ক এবং সম্ভবত কম ক্ষতি-ক্ষতিকারক) সম্ভবত প্রশ্নটি কেন ভুল হয়েছে তা ব্যাখ্যা করার জন্য এটি সম্ভবত মন্তব্যগুলিতে ব্যাখ্যা করা হবে ...
কাইল স্ট্র্যান্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.