[python] 가져온 모듈을 나열하는 방법?

가져온 모든 모듈을 열거하는 방법은 무엇입니까?

예를 들어이 ['os', 'sys']코드에서 얻고 싶습니다 .

import os
import sys



답변

import sys
sys.modules.keys()

현재 모듈에 대한 모든 수입품을 얻는 대략적인 방법은 모듈을 검사하는 것 globals()입니다.

import types
def imports():
    for name, val in globals().items():
        if isinstance(val, types.ModuleType):
            yield val.__name__

로컬 가져 오기 또는와 같은 비 모듈 가져 오기는 반환하지 않습니다 from x import y. 이것을 val.__name__사용하면 원래 모듈 이름을 얻을 수 있도록 리턴합니다 import module as alias. 별명을 원하면 대신 수율 이름.


답변

의 교차점 찾기 sys.modules와를 globals:

import sys
modulenames = set(sys.modules) & set(globals())
allmodules = [sys.modules[name] for name in modulenames]


답변

스크립트 외부에서이를 수행하려면 다음을 수행하십시오.

파이썬 2

from modulefinder import ModuleFinder
finder = ModuleFinder()
finder.run_script("myscript.py")
for name, mod in finder.modules.iteritems():
    print name

파이썬 3

from modulefinder import ModuleFinder
finder = ModuleFinder()
finder.run_script("myscript.py")
for name, mod in finder.modules.items():
    print(name)

myscript.py에 의해로드 된 모든 모듈을 인쇄합니다.


답변

print [key for key in locals().keys()
       if isinstance(locals()[key], type(sys)) and not key.startswith('__')]


답변

수학을 가져온 다음 다시 말해 보자.

>>import math,re

지금 같은 사용법을 볼

>>print(dir())

가져 오기 전과 가져 오기 후에 실행하면 차이를 볼 수 있습니다.


답변

실제로 다음과 함께 잘 작동합니다.

import sys
mods = [m.__name__ for m in sys.modules.values() if m]

가져올 수있는 모듈 이름 으로 목록이 생성 됩니다.


답변

이 코드는 모듈에서 가져온 모듈을 나열합니다.

import sys
before = [str(m) for m in sys.modules]
import my_module
after = [str(m) for m in sys.modules]
print [m for m in after if not m in before]

코드를 실행하기 위해 새 시스템에 어떤 외부 모듈을 설치해야하는지 알고 싶을 때 유용합니다.

sys가져온 모듈을 나열하지 않습니다 .