[python] 코드 내에 파이썬 모듈 설치

스크립트 내에서 PyPi의 패키지를 직접 설치해야합니다. 어쩌면 일부 모듈 또는 거기에 distutils( distribute, pip나처럼 뭔가를 실행할 수 등) 기능 pypi.install('requests')및 요청 내 VIRTUALENV에 설치됩니다.



답변

스크립트에서 패키지를 설치하는 공식적으로 권장되는 방법은 하위 프로세스를 통해 pip의 명령 줄 인터페이스를 호출하는 것입니다. 여기에 제시된 대부분의 다른 답변은 pip에서 지원하지 않습니다 . 또한 pip v10부터는 pip._internal프로그래밍 방식으로 pip를 사용할 수 없음을 사용자에게 명확하게 알리기 위해 모든 코드가 정확하게 이동되었습니다 .

현재 런타임과 sys.executable동일한 호출을 할 때 사용하십시오 pip.

import subprocess
import sys

def install(package):
    subprocess.check_call([sys.executable, "-m", "pip", "install", package])


답변

다음과 같은 것을 사용할 수도 있습니다.

import pip

def install(package):
    if hasattr(pip, 'main'):
        pip.main(['install', package])
    else:
        pip._internal.main(['install', package])

# Example
if __name__ == '__main__':
    install('argh')


답변

사용하고자하는 경우 pip필요한 패키지를 설치하고 설치 후 그것을 가져,이 코드를 사용할 수 있습니다 :

def install_and_import(package):
    import importlib
    try:
        importlib.import_module(package)
    except ImportError:
        import pip
        pip.main(['install', package])
    finally:
        globals()[package] = importlib.import_module(package)


install_and_import('transliterate')

패키지를 사용자로 설치 한 경우 패키지를 가져올 수없는 문제가 발생할 수 있습니다. sys.path를 새로 고치는 방법을 참조하십시오 . 추가 정보가 필요합니다.


답변

이것은 작동해야합니다 :

import subprocess

def install(name):
    subprocess.call(['pip', 'install', name])


답변

@Aaron의 답변에 예외 처리를 추가했습니다.

import subprocess
import sys

try:
    import pandas as pd
except ImportError:
    subprocess.check_call([sys.executable, "-m", "pip", "install", 'pandas'])
finally:
    import pandas as pd


답변

“install_requires”옵션을 사용하여 자신의 패키지의 setup.py 내에 종속 모듈을 정의하십시오.

패키지에 콘솔 스크립트를 생성해야 할 경우 “bin”폴더 (예 : virtualenv 환경)에 배치 될 래퍼 스크립트를 생성하기 위해 “console_scripts”진입 점을 사용할 수 있습니다.


답변