코드 내에 Python 모듈 설치
이상적으로는 pip
에서 Python 모듈을 설치하는 것이 매우 편리합니다. 그렇게 하려면 활성 터미널 내에 pip install module-name
을 입력해야 합니다. 그러면 완료됩니다.
하지만 오늘은 Python 스크립트를 사용하여 모듈을 설치하는 방법을 알아보려고 합니다.
코드로 Python 모듈을 설치하는 이점
Python 스크립트로 모듈을 설치하면 터미널 내에 Python 모듈을 설치하는 것과 비교할 때 두 가지 놀라운 이점이 있습니다.
첫째, 둘 이상의 모듈을 동시에 설치할 수 있습니다. 우리는 이것을 보여주는 예제를 작업할 것입니다.
둘째, 원하는 모듈의 특정 버전을 설치할 수 있습니다. 설치하려는 버전에 다른 버전에는 없는 특정 기능이 있는 경우 이상적입니다.
코드를 사용하여 Python 코드 설치
이 예제에서는 코드 내에 하나의 Python 모듈만 설치합니다. 새 Python 파일을 만듭니다. new.py
라는 이름을 지정하고 다음 코드 스니펫을 입력할 수 있습니다.
import os
os.system("pip install bottle-json-pretty")
os.system
안에 install
명령을 삽입하고 run
을 클릭하면 터미널에 성공적인 설치 메시지가 표시됩니다.
코드 내에 여러 Python 모듈 설치
이 예제의 코드 내에 여러 Python 모듈을 설치하려고 합니다. 이 기능은 새로운 Python 환경을 새로 설정하고 IDE 사용을 시작하기 위해 필요한 패키지를 설치하려는 상황에서 진정됩니다.
새 Python 파일을 만들고 이름을 new.py
로 지정하고 다음 코드를 삽입합니다.
import sys
import subprocess
import pkg_resources
required = {"sysdweb", "Flask-OIDC-SP", "apm-client", "Glances", "BottleJwtAuth"}
installed = {pkg.key for pkg in pkg_resources.working_set}
missing = required - installed
if missing:
subprocess.check_call([sys.executable, "-m", "pip", "install", *missing])
REQUIRED = {}
안에 설치하려는 모듈을 추가한 곳입니다.
코드 내 특정 버전으로 Python 모듈 설치
이 예에서는 특정 버전의 모듈을 설치할 수 있을 뿐만 아니라 여러 버전을 설치할 수도 있습니다. 이것은 완전한 패키지입니다.
새 파일을 만들고 이름을 new.py
로 지정하고 다음 코드를 입력합니다.
import sys
from subprocess import run, PIPE, STDOUT
import pkg_resources
def run_cmd(cmd):
ps = run(cmd, stdout=PIPE, stderr=STDOUT, shell=True, text=True)
print(ps.stdout)
required = {"markdown-server", "semver==2.9.0"}
installed = {f"{pkg.key}=={pkg.version}" for pkg in pkg_resources.working_set}
missing = required - installed
if missing:
run_cmd(f'pip install --ignore-installed {" ".join([*missing])}')
결론
이 방법은 좋아하는 Python 모듈의 패키지를 만들어 코드 내에 넣을 수 있기 때문에 도움이 됩니다. 그렇게 함으로써 원하는 곳 어디든 저장하고 가져갈 수 있는 Python 스크립트 또는 파일을 갖게 됩니다.
pip
명령을 계속 사용하여 모듈을 설치할 필요 없이 설정하려는 다른 IDE를 쉽게 사용할 수 있습니다.
Fisayo is a tech expert and enthusiast who loves to solve problems, seek new challenges and aim to spread the knowledge of what she has learned across the globe.
LinkedIn