보낸 사람 pip install --help
:
--user Install to the Python user install directory for your platform. Typically ~/.local/, or %APPDATA%\Python on
Windows. (See the Python documentation for site.USER_BASE for full details.)
site.USER_BASE에 대한 문서는 내가 이해하지 못하는 흥미로운 * NIX 주제의 끔찍한 웜홀입니다.
--user
일반 영어 의 목적은 무엇입니까 ? 왜 패키지를 설치해야 ~/.local/
합니까? 왜 $ PATH에 실행 파일을 넣지 않겠습니까?
답변
pip는 기본적으로 Python 패키지를 시스템 디렉토리 (예 :)에 설치합니다 /usr/local/lib/python3.4
. 루트 액세스가 필요합니다.
--user
대신 홈 디렉토리에 pip 설치 패키지를 만들므로 특별한 권한이 필요하지 않습니다.
답변
--user
에 설치합니다 site.USER_SITE
.
내 경우에는이었다 /Users/.../Library/Python/2.7/bin
. 그래서 ~/.bash_profile
파일에 PATH에 추가했습니다 .
export PATH=$PATH:/Users/.../Library/Python/2.7/bin
답변
다른 답변 site.USER_SITE
에는 Python 패키지가 배치되는 위치가 언급 되어 있습니다. 바이너리를 찾고 있다면 들어갑니다.{site.USER_BASE}/bin
.
이 디렉토리를 쉘의 검색 경로에 추가하려면 다음을 사용하십시오.
export PATH="${PATH}:$(python3 -c 'import site; print(site.USER_BASE)')/bin"
답변
단지 경고 :
에 따르면 이 문제 , --user
현재 가상 ENV의의 내부 유효하지 않습니다pip
사용자 위치가 정말 가상 환경에 대한 이해가되지 않기 때문이다.
따라서 pip install --user some_pkg
가상 환경 내부에서 사용하지 마십시오 . 그렇지 않으면 가상 환경 pip
이 혼동됩니다. 자세한 내용은 이 답변 을 참조하십시오.
답변
가장 좋은 방법은 설치 virtualenv
이며 --user
혼란을 요구하지 않습니다 . 패키지를 설치할 때마다 더 많은 유연성을 얻고 다른 파이썬 버전과 프로젝트를 클로버 링 할 염려가 없습니다.
답변
macOS에서 --user
플래그 를 사용하는 이유 는 OS가 의존하는 라이브러리를 손상시키지 않기위한 것입니다. 보수적 많은 맥 OS 사용자를위한 접근 방식은 설치하거나 필요로하는 명령을 핍 업데이트 방지하는 것입니다 sudo
. 따라서 여기에는/usr/local/bin
…
참조 : Neovim 용 Python 설치 ( https://github.com/zchee/deoplete-jedi/wiki/Setting-up-Python-for-Neovim )
나는 아니에요 모두 에 설치하는 이유를 취소 /usr/local/bin
시스템은 파이썬에서 바이너리에 의존한다는 사실 주어진 Mac에서 위험 /Library/Frameworks/
하고 /usr/bin
. 나는 위에서 언급 한대로,로를 설치하는 것이 있기 때문에 용의자 /usr/local/bin
가 필요 sudo
시스템 라이브러리와 비용이 많이 드는 실수로 문을 열고있다. 따라서 설치 ~/.local/bin
는 이러한 위험을 피할 수있는 확실한 방법입니다.
참조 : Mac에서 파이썬 사용하기 ( https://docs.python.org/2/using/mac.html )
마지막으로, 정도에에 패키지를 설치하는 이점이 /usr/local/bin
그것에서 디렉토리의 소유자를 변경하는 것이 취하면, 궁금 root
로를 user
? 이렇게하면 sudo
시스템 종속적 인 변경을 방지하면서 사용하지 않아도 됩니다. * 이것이 보안 기본값이 과거에 (서버로) Unix 시스템이 더 자주 사용 된 방식의 유물입니까? 아니면 최소한 서버를 호스팅하지 않는 Mac 사용자를위한 좋은 방법일까요?
* 참고 : Mac의 시스템 무결성 보호 (SIP) 기능은 또한 사용자가 시스템 종속 라이브러리를 변경하지 못하도록 보호하는 것 같습니다.
-전자
답변
가상 환경없이
pip <command> --user
시스템 전체 패키지 설치 위치가 아닌 현재 사용자 계정의 로컬 파이썬 패키지 설치 위치에서 작동하도록 현재 pip 명령의 범위를 변경합니다.
- PIP 사용 설명서의 사용자 설치 를 참조하십시오 .
이것은 실제로 다중 사용자 컴퓨터에서만 중요합니다. 시스템 위치에 설치된 모든 항목은 모든 사용자가 볼 수 있으므로 사용자 위치에 설치하면 해당 패키지 설치가 다른 사용자와 분리되어 유지됩니다 (표시되지 않으며 사용하려면 별도로 설치해야 함). 버전 충돌이있을 수 있으므로 다른 패키지에 필요한 종속성이있는 패키지를 설치하면 문제가 발생할 수 있으므로 지정된 사용자가 사용하는 모든 패키지를 시스템 설치 위치로 푸시하지 않는 것이 가장 좋습니다.
- 단일 사용자 시스템 인 경우 해당
--user
위치 에 설치하는 것과 거의 차이가 없습니다 . 패키지와 패키지 사용 방법에 따라 다른 폴더에 설치되며 경로에 추가해야 할 수도 있고 필요하지 않을 수도 있습니다 (많은 패키지는 셸에서 실행하려면 경로에 있어야하는 명령 줄 도구를 설치합니다) . - 다중 사용자 시스템 인
--user
경우 관리자가 기본적으로 모든 사용자가 사용할 수있는 일반 패키지의 경우를 제외하고 루트 / 스도를 사용하거나 관리자 설치가 필요하고 모든 사용자의 Python 환경에 영향을주는 것이 좋습니다.- 참고 : 대부분의 유닉스 / 리눅스 설치에서는 시스템 설치시 일반 패키지 관리자 (예 :
apt
대신)를 사용해야한다는 의견 이pip
있습니다.
- 참고 : 대부분의 유닉스 / 리눅스 설치에서는 시스템 설치시 일반 패키지 관리자 (예 :
가상 환경
- Python Packaging 설명서에서 가상 환경 으로 패키지 설치에 대한 자세한 내용을 참조하십시오 .
- 가상 환경을 만들고 사용하는 방법과 Python VENV docs 의
venv
명령 을 읽으십시오 .
--user
활성 venv / virtualenv 환경 의 옵션은 로컬 사용자 파이썬 위치에 설치됩니다 (가상 환경이없는 것과 동일).
패키지는 기본적으로 가상 환경에 설치되지만 사용 --user
하면 가상 환경 외부의 사용자 python 스크립트 디렉토리 (Windows의 경우 현재 c:\users\<username>\appdata\roaming\python\python37\scripts
Python 3.7)에 설치됩니다.
그러나 가상 환경 --user
에서 사용한 경우에도 가상 환경 내에서 시스템 또는 사용자 설치에 액세스 할 수 없습니다 .
--system-site-packages
인수 를 사용하여 가상 환경을 설치하면 Python의 시스템 스크립트 폴더에 액세스 할 수 있습니다. 여기에는 사용자 파이썬 스크립트 폴더도 포함되어 있다고 생각하지만 확실하지 않습니다. 그러나 의도하지 않은 결과가 발생할 수 있으며 가상 환경을 사용하는 것은 아닙니다.
Python 시스템 및 로컬 사용자 설치 폴더의 위치
을 사용하여 python의 사용자 설치 폴더 위치를 찾을 수 있습니다 python -m site --user-base
. Q & A, 설명서 및 PC에서 기본값이 무엇인지에 대해 실제로이 명령을 사용하여 충돌하는 정보를 찾고 있지만 사용자 홈 디렉토리 ( ~
* nix의 단축 키, c:\users\<username>
일반적으로 Windows의 경우) 아래에 있습니다.
기타 세부 사항
이 --user
옵션이 모든 명령에 유효한 것은 아닙니다. 예를 들어 pip uninstall
패키지가 설치된 위치 (사용자 폴더, 가상 환경 폴더 등)를 찾아서 제거하며 --user
옵션이 유효하지 않습니다.
설치된 항목 pip install --user
은 현재 사용자 계정에서만 볼 수있는 로컬 위치에 설치되며 루트 액세스 (* nix) 또는 관리자 액세스 (Windows)는 필요하지 않습니다.
이 --user
옵션 은 사용자 설치 폴더에서 보거나 조작하기 위해이를 수락하는 모든 pip
명령을 수정 하므로, 사용 pip list --user
하는 경우로 설치된 패키지 만 표시됩니다 pip install --user
.