मैं इस विषय में अपने कुछ विचार/निष्कर्ष जोड़ना चाहता हूं। मैं एक ऐसी स्क्रिप्ट लिख रहा हूं जो कस्टम किए गए कार्यक्रम के लिए सभी आवश्यकताओं की जांच करता है। पाइथन मॉड्यूल के साथ भी कई जांच हैं।
try:
import ..
except:
..
समाधान के साथ एक छोटे से मुद्दे नहीं है। मेरे मामले में पाइथन मॉड्यूल में से एक को python-nmap
कहा जाता है, लेकिन आप इसे import nmap
के साथ आयात करते हैं और जैसा कि आप नाम मेल नहीं खाते हैं। इसलिए उपरोक्त समाधान के साथ परीक्षण एक झूठा परिणाम देता है, और यह हिट पर मॉड्यूल भी आयात करता है, लेकिन शायद एक साधारण परीक्षण/जांच के लिए बहुत सारी मेमोरी का उपयोग करने की आवश्यकता नहीं है।
मैंने यह भी पाया कि
import pip
installed_packages = pip.get_installed_distributions()
installed_packages
केवल संकुल होगा पिप के साथ स्थापित किया गया है। मेरे सिस्टम पर pip freeze
40
पायथन मॉड्यूल पर लौटाता है, जबकि installed_packages
में केवल 1
है, जिसे मैंने मैन्युअल रूप से इंस्टॉल किया है (पायथन-एनएमएपी)।
कि नीचे एक अन्य समाधान मैं यह पता सकता है सवाल के लिए प्रासंगिक नहीं है, लेकिन मुझे लगता है कि यह एक अच्छा अभ्यास है परीक्षण समारोह अलग एक स्थापित यह कुछ के लिए उपयोगी हो सकता है लोगों को उस से रहते हैं।
समाधान जो मेरे लिए काम करता है। यह इस उत्तर के आधार पर How to check if a python module exists without importing it
from imp import find_module
def checkPythonmod(mod):
try:
op = find_module(mod)
return True
except ImportError:
return False
नोट: इस समस्या का समाधान नहीं भी नाम python-nmap
द्वारा मॉड्यूल पा सकते हैं, मैं nmap
बजाय का उपयोग करने के (आसान साथ रहने के लिए) है, लेकिन इस मामले में मॉड्यूल नहीं होगा स्मृति को लोड किया जाना चाहिए।
स्रोत
2017-09-07 12:04:33
किस प्रकार की स्क्रिप्ट? – Christopher
स्काइप शुरू करने और पैकेट डेटा एकत्र करने के लिए tcpdump का उपयोग करने के लिए एक पायथन स्क्रिप्ट लिखना ताकि मैं विश्लेषण कर सकूं कि आपके पास कॉन्फ़्रेंस कॉल होने पर नेटवर्क कैसे कार्य करता है। – Kevin