본문 바로가기
Development/Python

Python 코드 안에서 git과 pip 사용하기

by 곽동현 이스텔리앙 2020. 2. 19.

Python 코드 안에서 pip install하기

import sys
import subprocess


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



def pip_install_requirements(requirements_dir):
subprocess.check_call(["sudo", sys.executable, "-m", "pip", "install", "-r", requirements_dir.rstrip(".txt")+".txt"])


https://stackoverflow.com/questions/12332975/installing-python-module-within-code




Pip install을 했을 때 생기는 일

Pip install을 하면, 단순히 해당 프로젝트를 /opt/conda/lib/python3.6/site-packages/패키지 이런 곳에 다운받아서 python code들을 read only로 설정하게 된다.

만약 내가 이 코드를 수정하고 싶으면, sudo 권한을 이용해서 강제로 변경할 수도 있다.


Pip install --user를 사용했을 때 

--user옵션을 줄 경우, 단순히 package설치 경로가 해당 user의 home dir 밑으로 설치되는 것이 유일한 차이점이다. 이는 virtual_env를 무시하고 일어나기 때문에 문제가 생길 수 있어서 가능한 피하는게 좋다.




Python에서 git clone하기

import os
import sys
import git


def make_safe_dir(dir):
if not os.path.exists(dir):
os.makedirs(dir)


def git_clone(git_url):
target_dir = os.path.join(GlobalVariable.ProjectRoot, GlobalVariable.Conf.tmp_clone_dir)
make_safe_dir(target_dir)
git.Git(target_dir).clone(git_url)

https://stackoverflow.com/questions/2472552/python-way-to-clone-a-git-repository

'Development > Python' 카테고리의 다른 글

Python subprocess와 Multi-process  (0) 2020.02.20
Python에서 directory 관련 명령어  (0) 2020.02.19
Python 코드 안에서 git과 pip 사용하기  (0) 2020.02.19
Advanced Python Scheduler  (0) 2020.02.18
Airflow  (0) 2020.02.11
Black: Uncompromising Python Coding Convetion  (0) 2020.02.04

댓글0