mamba / micromamba 요약 정리

mamba 와 conda 는 서로 교체 가능한 파이썬 패키지 매니저이다.

mamba는 conda와 같은 사용방법과 동일한 환경을 이어받은 패키지 관리자 이다. conda & mamba 명령을 서로 거의 동일하게 사용할 수 있다. conda 의 패키지 채널을 그대로 사용할 수 있다.

1
2
3
mamba install ...
mamba create -n ... -c ... ...
mamba list

여기서는 micromamba를 사용해보려고 한다.

micromamba 는 mamba의 소규모 버전으로 독립적 실행 파일이다. 다만 mamba 와 micromamba는 환경 구성이 좀 다르다. micromamba는 mamba와 다르게 MAMBA_ROOT_PREFIX 환경 변수를 기준으로 패키지 관리가 시작되고 환경이 생성된다.

  1. 설치
  2. micromamba 사용
  3. 가상환경 사용
  4. Repoquery 명령
  5. Uninstall
  6. 참고

1. micromamba 설치

https://mamba.readthedocs.io/en/latest/installation/micromamba-installation.html

Linux, macOS, or Git Bash on Windows install with:

1
"${SHELL}" <(curl -L micro.mamba.pm/install.sh)

Windows 에서 설치

Windows 의 PowerShell에서 Execution-policy 를 지정해야 한다.

  1. PowerShell을 관리자로 연다
1
2
PS> Get-ExecutionPolicy
Restricted
  1. Set-ExecutionPolicy로 RemoteSigned 혹은 Unrestricted 로 지정한다.
1
PS> Set-ExecutionPolicy RemoteSigned
  1. 그리고 다음 스크립을 일반 PowerShell에서 실행한다
1
PS> Invoke-Expression ((Invoke-WebRequest -Uri https://micro.mamba.pm/install.ps1).Content)

설치를 진행한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
PS> Invoke-Expression ((Invoke-WebRequest -Uri https://micro.mamba.pm/install.ps1).Content)

Downloading micromamba from https://github.com/mamba-org/micromamba-releases/releases/latest/download/micromamba-win-64
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 9280k 100 9280k 0 0 3355k 0 0:00:02 0:00:02 --:--:-- 10.8M

Installing micromamba to C:\Users\student\AppData\Local\micromamba

Adding C:\Users\student\AppData\Local\micromamba\micromamba.exe to PATH

Do you want to initialize micromamba for the shell activate command? (Y/n): y
Enter the path to the micromamba prefix (default: C:\Users\student\micromamba):
Initializing micromamba in C:\Users\student\micromamba
C:\Users\student\AppData\Local\micromamba\micromamba.exe
The following argument was not expected: -p
Run with --help for more information.

Update

1
PS> micromamba self-update

특정 버전으로 업데이트도 가능하다.

1
PS> micromamba self-update --version 1.4.6

micromamba 도움말.

1
PS> micromamba --help

2. micromamba 사용

micromamba의 가상환경은 micromamba activate /path/to/env 같이 활성화 시키는데, MAMBA_ROOT_PREFIX 환경변수를 기준으로 micromamba activate env 같이 사용할 수 있다.

현재 사용할 수 있는 환경을 출력.

1
2
3
4
5
PS> micromamba env list
Name Active Path
--------------------------------------------------------------
base C:\Users\student\micromamba
C:\Users\student\miniconda3\envs\myenv

micromamba 명령으로 대부분의 conda 명령을 동일하게 실행할 수 있다.

1
2
3
4
5
6
7
8
9
10
micromamba info                          # 현재 micromamba 환경정보

# 설치한 패키지 목록
micromamba list ananconda # Anaconda 정보
micromamba list python # python 패키지 정보

# upgrade
micromamba update pip # pip upgrade
micromamba update pip=25.0 # pip upgrade to 25.0
micromamba update conda # conda upgrade

3. 가상환경 사용

-n 옵션으로 가상환경을 지정하고 생성/수정/삭제를 할 수 있고, 더불어 패키지를 함께 관리할 수 있다.

가상환경 생성

가상환경과 패키지를 함께 설치한다.

1
PS> mamba create -n myenv <list of packages>

가상환경에 python 버전을 지정할 수 있다.

1
PS> micromamba create -n myenv python=3.12

가상환경에 설치 채널을 지정해 설치할 수 있다. 아래는 conda-forge 채널 이용

1
PS> micromamba create -n myenv jupyterlab -c conda-forge python=3.12
1
2
# 가상환경 목록
PS> micromamba env list

가상환경 활성화

가상환경은 가상환경 이름을 주어 활성화 한다.

1
2
PS> micromamba activate myenv
(myenv) PS C:\Users\student>

혹은 가상환경이 있는 위치의 절대경로를 주어 활성화 할 수 있다.

1
PS> micromamba activate /path/to/myenv

run 명령은 가상환경을 사용해서 특정 스크립트/명령를 직접 실행할 수 있다.

1
PS> micromamba run -n myenv mycommand

가상환경 myenv 의 서버 목록을 출력

1
2
3
4
5
(myenv) PS> micromamba run -n myenv jupyter server list
Currently running servers:
http://localhost:8888/?token=317c9380f9c3ed4ab6f836a7ffbc789497728820e9c60f47 :: D:\Jupyter_Hub
http://localhost:8585/ :: D:\Jupyter_Hub
http://desktop-goyangi:8686/ :: D:\Jupyter_Hub

사용중인 가상환경 비활성화

1
2
(myenv) PS> micromamba deactivate
PS>

모듈/패키지 설치

micromamba 명령을 사용해 모듈과 패키지를 설치 채널을 지정해서 설치할 수 있다.

활성화 myenv 가상환경에서 matplotlib 패키지를 설치한다.

1
2
3
4
5
6
7
(myenv) PS>micromamba install matplotlib -c conda-forge
Pinned packages:
- python=3.12
Transaction
Prefix: C:\Users\student\micromamba\envs\myenv
...

비활성 상태에서 myenv 가상환경에 패키지를 설치한다.

1
2
3
4
5
6
PS> micromamba -n myenv install matplotlib
Pinned packages:
- python=3.12

Transaction
Prefix: C:\Users\student\micromamba\envs\myenv

가상환경 업데이트

특정 가상환경을 모두 업데이트

1
micromamba update -n myenv --all

환경의 모든 패키지를 덥데이트 하려면

1
micromamba update --all

가상환경 제거

설치한 가상환경을 지운다

1
2
3
PS> micromamba env remove -n myenv --all
...
Proceed ([y]/n)? y

4. Repoquery 명령

mamba 는 새로운 패키지 검색 명령으로 repoquery 명령을 선보이고 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 설치 가능한 모든 python 패키지 목록
$ micromamba repoquery search python

# 설치 가능한 python=버전 패키지 목록
$ micromamba repoquery search "python>=3.11"

# 설치 가능한 jupyterlab 버전 패키지 목록
$ micromamba repoquery search "jupyterlab>=4.0"


# 현재 환경의 jupyterlab 에 연관된 의존성 패키지 목록
$ micromamba repoquery depends jupyterlab

# 현재 환경의 jupyterlab 에 연관된 모든 의존성 세부 목록
$ micromamba repoquery depends jupyterlab --recursive

패키지 연관 의존성을 트리형식으로 출력할 수 있다.

1
2
3
4
5
6
7
8
# 현재 환경의 jupyterlab 에 연관된 의존성 패키지의 트리 목록
$ micromamba repoquery depends -t jupyterlab
jupyterlab[4.3.4]
├─ jupyter-lsp[2.2.0]
│ ├─ python already visited
│ └─ jupyter_server[2.15.0]
│ ├─ python already visited

And you can ask for the inverse, which packages depend on some other package (e.g. ipython) using whoneeds.

1
2
3
4
5
6
7
8
$ micromamba repoquery whoneeds ipython

Name Version Build Depends Channel
-------------------------------------------------------------------
jupyter_console 6.4.3 pyhd3eb1b0_0 ipython pkgs/main
ipykernel 6.9.1 py39haa95532_0 ipython >=7.23.1 pkgs/main
ipywidgets 7.6.5 pyhd3eb1b0_1 ipython >=4.0.0 pkgs/main
With the -t,--tree flag, you can get the same information in a tree.

트리 형식 출력

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ mamba repoquery whoneeds -t ipython

ipython[8.2.0]
├─ jupyter_console[6.4.3]
│ └─ jupyter[1.0.0]
├─ ipykernel[6.9.1]
│ ├─ notebook[6.4.8]
│ │ ├─ widgetsnbextension[3.5.2]
│ │ │ └─ ipywidgets[7.6.5]
│ │ │ └─ jupyter already visited
│ │ └─ jupyter already visited
│ ├─ jupyter_console already visited
│ ├─ ipywidgets already visited
│ ├─ jupyter already visited
│ └─ qtconsole[5.3.0]
│ └─ jupyter already visited
└─ ipywidgets already visited

5. Uninstall, Windows

Micromamba는 Windows 11에서 다음과 같은 방법으로 삭제할 수 있습니다.

  1. micromamba 설치 디렉토리 삭제:

micromamba가 설치된 디렉토리를 찾습니다. 일반적으로 C:\Users<사용자 이름>.local\bin 또는 C:\micromamba에 설치됩니다.
해당 디렉토리를 삭제합니다.

  1. 환경 변수에서 micromamba 경로 제거:

Windows 검색 창에서 “환경 변수”를 검색하고 “시스템 환경 변수 편집”을 엽니다.
“시스템 속성” 창에서 “환경 변수” 버튼을 클릭합니다.
“시스템 변수” 섹션에서 “Path” 변수를 선택하고 “편집” 버튼을 클릭합니다.
micromamba가 설치된 디렉토리 경로가 있는지 확인하고, 있다면 해당 경로를 삭제합니다.
“확인” 버튼을 클릭하여 변경 사항을 저장합니다.

  1. micromamba 관련 파일 삭제:

C:\Users<사용자 이름>.condarc 파일을 삭제합니다. (존재하는 경우)
C:\Users<사용자 이름>.mambarc 파일을 삭제합니다. (존재하는 경우)

C:\Users<사용자 이름>\AppData\Local\micromamba (존재하는 경우)

  1. (선택 사항) micromamba 설치 시 생성된 바로가기 삭제:

micromamba 설치 시 생성된 바로가기가 있다면 삭제합니다.

  1. (선택 사항) micromamba와 관련된 가상 환경 삭제:

micromamba를 사용하여 생성한 가상 환경이 있다면 해당 디렉토리를 삭제합니다. 가상 환경은 일반적으로 C:\Users<사용자 이름>.micromamba\envs 디렉토리에 저장됩니다.


참고

새로운 Python Package Manager

uv 의 목적

uv는 Rust로 작성된 고속 의존성 해석 엔진을 앞세워, 가상환경 생성, 의존성 관리, 파이썬 버전 관리, 패키징, 포매터/린터 같은 서드파티 도구 실행을 한번에 알잘딱 처리합니다.

  1. A single tool to replace pip, pip-tools, pipx, poetry, pyenv, twine, virtualenv, and more.
  2. 10-100x faster than pip.
  3. Cargo-style workspaces
  4. Supports macOS, Linux, and Windows.
  5. https://github.com/astral-sh/uv

Cargo-style workspaces

독립적인 공간의 의존성, 가상환경, 패키지 관리를 할 수 있다.

  • pyenv, virtualenv 등의 가상환경 구성후 프로젝트에서 사용하는 방식이 아니다.
  • 프로젝트 공간에 의존성, 가상환경 등을 직접 구성한다.
  • venv 를 각 프로젝트 폴더에서 관리한다.

Python 패키징이 복잡해진 역사

https://www.reddit.com/r/Python/comments/cry1fn/rant_after_going_through_literal_hell_with/

  1. 초기 시절: easy_install
    2000년대 후반~2010년대 초반에는 PyPI와 pip 가 지금처럼 성숙하지 않았습니다.
    당시에는 easy_install 이 사실상 유일한 선택지였고, 설치한 패키지를 제거하거나, 설치된 패키지 버전을 지정·고정하는 기능이 부족해 많은 불편이 있었습니다.

  2. pip의 등장
    pip는 requirements.txt를 통해 의존성을 고정하고 설치할 수 있는 기능을 제공하면서, 그야말로 Python 커뮤니티의 표준이 되었습니다.
    Python 공식 배포판에도 점차 포함되어 사실상 “파이썬 하면 pip”라는 인식이 굳어지기도 했습니다.

  3. conda의 등장과 머신러닝 생태계
    conda는 주로 NumPy, SciPy 같은 과학 컴퓨팅 라이브러리를 쉽게 설치하고자 하는 목적에서 개발되었습니다.
    하지만 conda 는 별도의 패키지 저장소(Anaconda Cloud, conda-forge)를 사용하고, pip 와는 분리된 자체 의존성 해석 방식, 가상환경 관리 방식을 채택하고 있어서 생태계가 이원화되는 문제를 야기했습니다.
    그 결과, 리서쳐와 서비스 개발자 간의 소통 문제가 빈번히 발생해 왔습니다.

  4. poetry의 부상
    poetry는 pyproject.toml과 poetry.lock 기반으로 의존성을 엄격히 고정하고, 여러 플랫폼에서 재현 가능한 빌드를 제공한다는 점에서 각광을 받았습니다.

단점으로는, 복잡한 의존성을 가진 프로젝트에서 해석 속도가 느리다는 점이 종종 지적되었습니다.

그럼에도 Poetry는 “제대로 동작하는 것을 보장한다” 는 확실한 장점을 가진 덕분에, 비교적 규모가 큰 팀이나 오픈소스 프로젝트에서 널리 채택되었습니다.

  1. 기타 pyenv 등.
    pyenv, pipx, pipenv, pip-tools 등의 도구도 각자 가상환경·의존성 관리, Python 버전 관리, 종속성 락(lock) 파일 관리 등 다양한 문제를 해결하고자 시도했습니다.

하지만 이런 도구마다 관점이 달라서, 서로 비슷한 기능이 겹치거나, 설정 방식이 달라 숙련된 개발자조차 혼란스러워하는 지점이 많았습니다.

Installation

Install uv with our standalone installers:

1
2
# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh
1
2
# On Windows.
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

from PyPI:

1
2
3
4
5
# With pip.
pip install uv

# Or pipx.
pipx install uv

설치후 self update

1
uv self update

Uninstall

1
2
3
4
# Remove all data that uv has stored
uv cache clean
rm -r "$(uv python dir)"
rm -r "$(uv tool dir)"
1
2
# Remove binaries
rm ~/.local/bin/uv ~/.local/bin/uvx

사용방법

  1. 가상환경을 만들고 이를 이용하는 방법
  2. 프로젝트 폴더별로 가상화경만 이용하는 방법
  3. 프로젝트에서 pyproject.toml 의존성을 이용하는 방법

Python version

uv 에서 standalone 으로 python 을 설치하고 변경할 수 있다.

원하는 폴더에서 .python-version 파일의 버전으로 파이썬을 실행할 수 있다.

standalone python 을 설치한다.

1
uv python install 3.10 3.11 3.12

가상환경 사용하기

https://docs.astral.sh/uv/pip/environments/

https://earthly.dev/blog/python-uv/

새로운 가상환경 만들기

기존 프로젝트/폴더에서 사용하던 requirements.txt 준비한다.

  1. 프로젝트 폴더에서 uv 프로젝트 초기화
  2. 의존성 requirements.txt 설치
1
2
mkdir my_uv_project
uv venv my_env -p 3.13

활성화

1
2
3
4
5
# window
./my_env/scripts/activate

# linux & macos
source ./my_env/bin/activate
1
2
3
4
5
FOLDER/
├── .python-version
├── .gitignore
├── pyproject.toml
└── README.md

가상환경에서 uv pip 명령으로 패키지를 설치하고 관리할 수 있다.

하지만 호환을 위해 pip 를 사용해야할 경우도 많기 때문에 pip 를 설치해 준다.

1
2
3
4
(my_env)> uv pip install pip
Resolved 1 package in 77ms
Prepared 1 package in 362ms
Installed 1 package in 589ms

폴더별 가상환경을 만들어 사용한다.

특정 디렉토리에서 pin 명령으로 python 버전을 지정할 수 있다.

  • 여기서 A, B 디렉토리를 만들고 3.10, 3.11를 지정해 사용해 보겠다.
1
2
3
4
5
6
7
8
9
10
11
12
13
mkdir A
mkdir B

cd A
uv venv -p 3.10
Using CPython 3.10.16
Creating virtual environment at: .venv
Activate with: .venv\Scripts\activate

PS D:\A> .\.venv\Scripts\activate
(A) PS D:\A>
(A) PS D:\A> deactivate
PS D:\A>

B 폴더에서 가상환경을 만든다

1
2
3
4
5
6
7
8
9
cd ../B
> uv venv -p 3.11
Using CPython 3.11.11
Creating virtual environment at: .venv
Activate with: .venv\Scripts\activate
PS D:\B> .\.venv\Scripts\activate
(B) PS D:\B>
(B) PS D:\B> deactivate
PS D:\B>

여러 가상환경을 만들어 사용

한 프로젝트 폴더에 여러개의 가상환경을 만들어 사용할 수 있다.

기존 가상환경에서 새로운 가상환경을 추가해 서로 교화하며 사용할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 새 가상환경 생성
(A) PS D:\A> uv venv .second_env -p 3.12
Using CPython 3.12.9
Creating virtual environment at: .second_env
Activate with: .second_env\Scripts\activate

# second_env 활성화
(A) PS D:\A> .\.second_env\Scripts\activate
(.second_env) PS D:\A> python -V
Python 3.12.9

# .venv 활성화
(.second_env) PS D:\A> .\.venv\Scripts\activate
(A) PS D:\A> python -V
Python 3.10.16
(A) PS D:\A>```


# 프로젝트 의존성 이용하기

기존 프로젝트/폴더에서 사용하던 requirements.txt 준비한다.

1. 프로젝트 폴더에서 uv 프로젝트 초기화
3. 의존성 requirements.txt 설치
1. 의존성 추가하면 자동으로 .venv 가상환경이 생성된다.

진행한 후 폴더에 다음 파일이 추가된다

FOLDER/
├── .venv
├── .python-version
├── .gitignore
├── pyproject.toml
└── README.md

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20



1. 프로젝트 초기화

```powershell
# 프로젝트 폴더
> cd My-lectures

> uv init
Initialized project `My-lectures`


2. 의존성 설치

```powershell
> uv add -r .\requirements.txt
Resolved 156 packages in 880ms
Prepared 36 packages in 39.36s
Installed 36 packages in 39.04s
  1. 가상환경 활성화
1
2
> .\.venv\Scripts\activate
(My-lectures) PS D:\My_Lectures>
  1. IDE 에서 .venv 를 인식한다

동일한 .venv 가상 환경을 IDE가 바로 인식할 수 있다.

uv add –dev ipykernel # 개발용(인터랙티브) 의존성 추가

프로젝트 python 버전 변경

uv sync로 프로젝트에 필요한 Python 버전과 .venv 가 자동으로 맞춰진다.

앞의 My-lectures 폴더를 대상으로 변경해 보자.

  1. pyproject.toml 의 python 버전을 변경
  2. uv python pin 명령
  3. uv sync

의존성 python 버전을 변경하려면 pyproject.toml 를 수정해야 한다.

1
2
3
4
5
6
7
[project]
name = "jupyter-lectures"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = []

3.12로 변경해 보자

1
requires-python = ">=3.12"

pin 으로 버전을 변경한다

1
> uv python pin 3.12

uv sync 로 pyproject.toml 의 의존성을 .venv 에 업데이트 한다.

1
2
3
4
5
6
7
> uv sync
Using CPython 3.12.9
Removed virtual environment at: .venv
Creating virtual environment at: .venv
Resolved 171 packages in 764ms
Prepared 25 packages in 13.32s
Installed 166 packages in 28.90s

uv pip 사용

pip 는 uv 명령으로 사용하면 된다.

1
uv pip

Project 사용

https://docs.astral.sh/uv/guides/projects/

https://sigridjin.medium.com/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%9D%BC%EB%A9%B4-uv-%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%A9%EC%8B%9C%EB%8B%A4-546d523f7178

pip/conda Proxy 사용하기

회사 등에서 방화벽을 사용하는 경우 pip / conda 저장소에서 패키지 설치가 안되는 경우가 있다. 또한 방화벽 안에서 설치할 경우 SSL verification error 에러 발생으로 설치가 안되기도 한다. 이런 경우 직접 pip 혹은 conda 설치가 안되는 경우에 프락시 지정을 해서 사용이 가능하다.

conda proxy

.condarc 파일과 conda 명령 옵션으로 사용할 수 있다.

.condarc 파일

사용자 홈디렉토리 .condarc 파일에 proxy 구성을 한다.

파일에 proxy_servers 구성해 사용한다.

1
2
3
proxy_servers:
http: http://IP_ADDRESS:8080
https: https://IP_ADDRESS:8080

ssl_verify: SSL verification error

방화벽 때문에 파이썬 패키지를 설치할 때 SSL 인증 오류(SSL verification error)가 생겨 곤란할 때가 있다. 만약 프락시 인증서가 필요하면 pip 인증서를 추가하면 ssl verification 에러를 피할 수 있다.

1
2
3
4
proxy_servers:
http: http://IP_ADDRESS:8080
https: https://IP_ADDRESS:8080
ssl_verify: %programdata%\pip\dscert.crt

conda --set 옵션 사용

설정 파일 대신 conda 명령에서 --set 옵션을 사용하면 설정 파일을 편집해서 저장이 된다.

1
conda config --set [설정내용]

다음은 ssl_verify 에 pip 인증서를 추가하거나 False 로 제외하고 사용하고 있다.

1
conda config --set ssl_verify False

명령에서 즉시 사용할 때는 --add 옵션을 사용한다.


pip proxy

pip 명령은 명려에서 옵션 pip proxy 옵션을 사용하거나 설정 파일 pip.ini 로 구성할 수 있다.

pip.ini

pip는 사용자 구성에서 아래 같이

  • 윈도우: %HOMEPATH%\pip\pip.ini
  • 리눅스/맥: $HOME/.pip/pip.conf

trusted-host 를 구성해 준다.

1
2
3
4
5
6
[global]
proxy=http://IP_ADDRESS:8080
trusted-host = pypi.python.org
pypi.org
files.pythonhosted.org

ssl cert

SSL 의 경우 cert 옵션을 사용할 수 있다.

1
2
3
4
5
6
[global]
cert=C:\Users\user\pip\cert.crt
proxy=http://IP_ADDRESS:8080
trusted-host = pypi.python.org
pypi.org
files.pythonhosted.org

pip 명령 사용

명령으로 직접 proxy 를 지정할 수 있다.

1
pip install --proxy https://{proxy}:{port} {BINARY}

다음 같인 trusted-host 등도 지정 할 수 있다.

1
pip install --upgrade --proxy https://IP_ADDRESS:8080 --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org matplotlib numpy openpyxl xlrd xlwt pandas

pip 사용방법 요약 정리

pip 사용 방법

시스템 설치 python 의 기본 pip 를 사용하고 있다.

pip 명령

- pip install

일반적인 외부라이브러리 설치는 install 명령을 사용한다.

1
pip install <모듈명>

로컬 외부라이브러리 설치시에는 파일명을 그대로 사용한다. 일반적으로 압축파일로 특정 사이트에서 제공해주는 경우

1
$ pip install 파일명

pip가 자주 업데이트 되므로 install 명령으로 업데이트해주는 것이 좋다. 보통 설치 명령은 업그레드를 포함한 install -U 옵션을 준다.

1
$ pip install -U pip

- 버전 지정

특정 버전을 설치할 수 있습니다. 기본적으로 버전정보가 입력되지 않으면 최신버전이 설치.

1
$ pip install 패키지명==버전넘버(예:2.3.0)

특정 버전 이상을 설치합니다.

1
$ pip install 패키지명>=버전넘버(예:2.3.0)

특정라이브러리를 업그레이드한다.

1
2
$ pip install --upgrade 패키지명
$ pip install -U 패키지명

업그레이드시 업그레이드 전략을 사용해서 의존성을 확장할 수 있다.

  • upgrade-stratege : 기본 only-if-needed 로 보통 모듈만 업그레읻한다. eager : 의존성까지 업그레이드 된다.
1
2
# 모듈의 의존성까지 업그레이드한다.
$ pip install -U --upgrade-stratege eager <모듈>

특정 라이브러리 삭제

1
$ pip uninstall 패키지

- pip 설치 리스트 확인

pip로 설치한 모듈 목록을 볼 때 list, freeze 를 사용할 수 있다.

  • pip list : 현재 설치된 모든 목록을 보여준다.
  • pip freeze : 파이썬 기본 패키지를 제외하고 새로 설치한 패키지를 보여준다.
1
2
$ pip list
$ pip freeze

- pip 패키지 검색

라이브러리 검색. 패키지명과 description과 like 검색.

1
$ pip search <검색어>

- requirements.txt 사용

pip freeze는 현재 설치된 모든 모듈을 출력해서, 보통 리다이렉트로 requirements.txt를 아래와 같이 생성할 수 있다.

1
$ pip freeze > requirements.txt

이후에 이 requirements.txt 파일을 이용해 전체 모듈을 다시 설치할 수 있다.
그래서 파이썬의 프로젝트에서는 일반적으로 프로젝트에 필요한 라이브러리 리스트를 requirements.txt 파일로 사용한다.

requirements.txt 파일에 기록된 패키지를 모두 설치하는 방법

1
$ pip install -r requirements.txt

라이브러리 정보 확인

1
$ pip show 패키지명

site-packages 위치

시스템 패키지 위치는 기본 시스템 위치, 가상환경 과 user level 에 따라 다르다.

pip 시스템 모듈 위치

시스템 기본 파이썬으로 pip install MODULE 로 설치시 OS에 따라 보통 아래 위치에 설치된다.

macOS:

1
/Users/<USER_HOME>/Library/Python/[VERSION]/lib/python/site-packages

Linux:

1
2
/usr/local/lib/python3.7/site-packages
/usr/lib/python3/dist-packages

windows:

1
C:/Program Files/Python37/site-package

사용자 User scheme 설치

Python2.6부터 User scheme 개념이 도입되며서 pip로 설치하는 패키지를 개별 사용자 환경 위치에 설치할 수 있다.

install 명령에 --user 옵션을 주고 설치한다.

  • 기본으로 리눅스는 ~/.local 폴더이고,
  • Mac OS X 는 ~/Library/Python/X.Y 에 위치한다.
  • Windows 는 C://AppData/Roaming/Python//site-packages 에 위치한다.

사용자 영역 설치한 모듈이 실행 모듈이면 PATH 환경변수에 사용자 아래 영역 경로를 추가해 준다.

  • 리눅스: ~/.local/bin
  • Mac OS :
  • Windows: C://AppData/Roaming/Python//Scripts

venv 가상환경 모듈 위치

venv 가상환경에서 설치시 가상환경 디렉토리 밑의 lib/site-packages 폴더에 설치된다.


Python : pip 명령 proxy 지정

방화벽 등으로 직접 pip 혹은 conda 설치가 안되는 경우에 프락시 지정을 해서 사용이 가능하다.

Anaconda proxy

사용자 홈디렉토리 .condarc 파일에 proxy 구성을 한다. 만약 프락시 인증서가 필요하면 인증서를 추가한다.

1
2
3
4
proxy_servers:
http: http://IP_ADDRESS:8080
https: https://IP_ADDRESS:8080
ssl_verify: %programdata%\pip\dscert.crt

pip

pip 명령은 명려에서 옵션 pip proxy 옵션을 사용하거나 pip.ini 로 구성할 수 있다.

1
pip install --upgrade --proxy https://IP_ADDRESS:8080 --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org matplotlib numpy openpyxl xlrd xlwt pandas

사용자 정의 폴더

pip는 사용자 구성에서 아래 같이

  • 폴더: ~/pip

pip.ini

1
2
3
4
5
6
7
[global]
cert=C:\Users\user\pip\cert.crt
proxy=http://IP_ADDRESS:8080
trusted-host = pypi.python.org
pypi.org
files.pythonhosted.org