복붙노트

[PYTHON] 모듈이 설치되어 있지 않은지 확인하십시오.

PYTHON

모듈이 설치되어 있지 않은지 확인하십시오.

모듈을 설치하고 싶으면 모듈이 있는지 확인하고 싶습니다.

어떻게해야합니까?

지금까지 모듈이 존재하지 않으면 f를 올바르게 출력하는이 코드를 가지고 있습니다.

try:
    import keyring
except ImportError:
    print 'f'

해결법

  1. ==============================

    1.여기 그것이 어떻게 이루어져야하는지, 그리고 내가 틀렸다면, 저를 시정하십시오. 그러나 Noufal은이 질문에 대한 또 다른 대답에서이를 확인한 것으로 보이므로 적절하다고 생각합니다.

    여기 그것이 어떻게 이루어져야하는지, 그리고 내가 틀렸다면, 저를 시정하십시오. 그러나 Noufal은이 질문에 대한 또 다른 대답에서이를 확인한 것으로 보이므로 적절하다고 생각합니다.

    필자가 작성한 스크립트를 위해 setup.py 스크립트를 작성할 때 필자는 필자의 배포판 패키지 관리자에게 의존하여 필자에게 필요한 라이브러리를 설치했다.

    그래서, 내 setup.py 파일에서, 나는 이것을했다 :

    package = 'package_name'
    try:
        return __import__(package)
    except ImportError:
        return None
    

    그래서 package_name이 설치 되었다면, 계속합니다. 그렇지 않으면 하위 프로세스를 사용하여 호출 한 패키지 관리자를 통해 설치하십시오.

  2. ==============================

    2.

    import pip
    
    def import_or_install(package):
        try:
            __import__(package)
        except ImportError:
            pip.main(['install', package])       
    

    이 코드는 패키지가 str 유형 인 패키지를 가져 오려고 시도하며, 불가능한 경우 pip를 호출하여 패키지를 설치하려고 시도합니다.

  3. ==============================

    3.모듈이 설치되어 있지 않은 경우 메시지를 인쇄하려는 경우에이 동적 가져 오기 기능은 실제로 잘 작동합니다. 서브 프로세스를 통해 pip를 발행하는 것과 같이 모듈을 자동으로 설치해서는 안됩니다 (SHOULD NOT). 이것이 우리가 setuptools를 사용하는 (또는 배포하는) 이유입니다.

    모듈이 설치되어 있지 않은 경우 메시지를 인쇄하려는 경우에이 동적 가져 오기 기능은 실제로 잘 작동합니다. 서브 프로세스를 통해 pip를 발행하는 것과 같이 모듈을 자동으로 설치해서는 안됩니다 (SHOULD NOT). 이것이 우리가 setuptools를 사용하는 (또는 배포하는) 이유입니다.

    패키징에 대한 훌륭한 자습서가 있으며 의존성 탐지 / 설치 작업은 install_requires = [ 'FancyDependency', 'otherFancy> = 1.0']처럼 간단합니다. 그게 다야!

    그러나 손으로 직접해야한다면 setuptools를 사용하여 도움을받을 수 있습니다.

    from pkg_resources import WorkingSet , DistributionNotFound
    working_set = WorkingSet()
    
    # Printing all installed modules
    print tuple(working_set)
    
    # Detecting if module is installed
    try:
        dep = working_set.require('paramiko>=1.0')
    except DistributionNotFound:
        pass
    
    # Installing it (anyone knows a better way?)
    from setuptools.command.easy_install import main as install
    install(['django>=1.2'])
    
  4. ==============================

    4.pip install % s "% keyring을 제외한 부분에 % keyring을 시작할 수 있지만 권장하지는 않습니다. 올바른 방법은 distutils를 사용하여 응용 프로그램을 패키지화하여 설치시 종속성을 가져 오는 것입니다.

    pip install % s "% keyring을 제외한 부분에 % keyring을 시작할 수 있지만 권장하지는 않습니다. 올바른 방법은 distutils를 사용하여 응용 프로그램을 패키지화하여 설치시 종속성을 가져 오는 것입니다.

  5. ==============================

    5.모든 모듈을 그렇게 쉽게 설치할 수있는 것은 아닙니다. 그들 모두가 쉬운 설치를 지원하지는 않습니다. 일부는 단지 그들을 설치하여 설치할 수 있습니다. 다른 것들은 gcc와 같은 일부 비 파이썬 필수 구성 요소를 필요로합니다. 이것은 훨씬 더 복잡하게 만듭니다 (그리고 Windows에서 잘 작동하는 것을 잊어 버립니다).

    모든 모듈을 그렇게 쉽게 설치할 수있는 것은 아닙니다. 그들 모두가 쉬운 설치를 지원하지는 않습니다. 일부는 단지 그들을 설치하여 설치할 수 있습니다. 다른 것들은 gcc와 같은 일부 비 파이썬 필수 구성 요소를 필요로합니다. 이것은 훨씬 더 복잡하게 만듭니다 (그리고 Windows에서 잘 작동하는 것을 잊어 버립니다).

    그래서 당신이 아마 일부 미리 결정된 모듈에 대해 작동하도록 만들 수는 있지만 모든 모듈에서 작동하는 일반적인 것이라는 가능성은 없습니다.

  6. from https://stackoverflow.com/questions/4527554/check-if-module-exists-if-not-install-it by cc-by-sa and MIT license