"pip install --user..."의 목적은 무엇입니까?
터에서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.)
The documentation for 의 매뉴얼site.USER_BASE
이해 못하겠어.내가 이해할 수 없는 흥미로운 *NIX 주제의 무시무시한 웜홀이다.
쉬운 영어로의 목적은 무엇입니까?패키지를 설치하는 이유는 무엇입니까?~/.local/
무슨 일이야?문제가 있나요?왜 딘 내 가 행 일 지 죠 는 거 why not my? put않?$PATH
????
파이썬 패키지를 시스템 디렉토리로 설치하려면 Pip such 스 렉 은 python 키 치 설 합 니 pip : 다예( to 지 를 pip defaults as directory디시에/usr/local/lib/python3.4
이). 루트 액세스 권한이 필요합니다.) ) root 액세스가 필요합니다.
--user
대신 홈 디렉토리에서 파이프를 설치하면 특별한 권한이 필요하지 않습니다.는 특별한 권한이 필요 없는 홈디렉토리에 pip 인스톨 패키지를 작성합니다.
--user
는 에 인스톨 됩니다.
경우는 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★./Users/.../Library/Python/2.7/bin
PATH」의 「PATH」의 「PATH」).~/.bash_profile
삭제):
export PATH=$PATH:/Users/.../Library/Python/2.7/bin
경고입니다.
이번 호를 보면--user
는 현재 환경 하지 않습니다.pip
사용자 위치는 가상 환경에 적합하지 않기 때문입니다.
이 말은 .pip install --user some_pkg
가상 환경 내, 그렇지 않은 경우 가상 환경 내pip
헷갈릴 거예요.상세한 것에 대하여는, 다음의 회답을 참조해 주세요.
가상 환경 없음
pip <command> --user
는 현재 pip 명령의 범위를 시스템 전체 패키지 설치 위치(기본값)가 아닌 현재 사용자 계정의 로컬 python 패키지 설치 위치에서 작동하도록 변경합니다.
- 「PIP 유저 가이드」의 「사용자 인스톨」을 참조해 주세요.
이것은 멀티 유저 머신에서만 문제가 됩니다.시스템 로케이션에 인스톨 되어 있는 것은, 모든 유저가 확인할 수 있기 때문에, 유저 로케이션에 인스톨 하면, 그 패키지의 인스톨이 다른 유저로부터 분리됩니다(이러한 인스톨은 표시되지 않기 때문에, 직접 인스톨 해 사용할 필요가 있습니다).버전 경합이 발생할 수 있으므로 다른 패키지에 필요한 종속성을 가진 패키지를 설치하면 문제가 발생할 수 있으므로 특정 사용자가 사용하는 모든 패키지를 시스템 설치 위치에 푸시하지 않는 것이 좋습니다.
- 머신인 는, 「」, 「」, 「」에 하는 .
--user
수도 있고 수도 다른 패키지는셸에서 합니다).패키지와 사용 방법에 따라 경로에 추가할 필요가 있거나 추가할 필요가 없는 다른 폴더에 설치됩니다(많은 패키지는 셸에서 실행하기 위해 경로에 있어야 하는 명령줄 도구를 설치합니다). - 머신인 는, 「」를 참조해 주세요.
--user
하거나 모든 Python 을 주는 가 기본적으로 할 수 는 제외합니다.root/sudo는 Python 환경에 영향을 줍니다.- 주의: 대부분의 /Linux 의에서는, 「/Linux 의 인스톨」, 「Unix/Linux 의 인스톨」, 「Unix/Linux 의 인스톨」, 「Unix/Linux 의 인스톨」매니저를 .
apt
보다pip
.
- 주의: 대부분의 /Linux 의에서는, 「/Linux 의 인스톨」, 「Unix/Linux 의 인스톨」, 「Unix/Linux 의 인스톨」, 「Unix/Linux 의 인스톨」매니저를 .
가상 환경에서의 사용
--user
활성 venv/virtualenv 환경의 옵션은 로컬 사용자 python 위치에 설치됩니다(가상 환경이 없는 경우와 동일).
패키지는 기본적으로 가상 환경에 설치되지만--user
가상 환경 외부의 사용자 python 스크립트 디렉토리에 강제로 설치됩니다(Windows의 경우 현재 이 기능은c:\users\<username>\appdata\roaming\python\python37\scripts
Python 3.7)을 사용할 수 있습니다.
그러나 가상 환경 내에서 시스템 또는 사용자 설치에 액세스할 수 없습니다(사용자가--user
가상 환경에 있는 동안).
를 사용하여 가상 환경을 설치하는 경우--system-site-packages
python의 시스템스크립트 폴더에 액세스 할 수 있습니다.사용자 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
option은 모두 변경합니다. pip
사용자 설치 폴더에 표시/조작할 수 있도록 허용하는 명령어입니다.pip list --user
설치된 패키지만 표시됩니다.pip install --user
.
기타 답변은 다음과 같습니다.site.USER_SITE
Python 패키지가 배치되는 장소입니다.바이너리를 찾고 있는 경우는, 이러한 바이너리를 사용해 주세요.{site.USER_BASE}/bin
.
셸의 검색 경로에 이 디렉토리를 추가하려면 다음을 사용하십시오.
export PATH="${PATH}:$(python3 -c 'import site; print(site.USER_BASE)')/bin"
를 인스톨 하는 것이 가장 좋은 방법입니다.virtualenv
필요한 것은 없습니다.--user
혼란.패키지를 pip으로 설치할 때마다 다양한 python 버전과 프로젝트를 클로버링할 염려가 없어지고 유연성이 향상됩니다.
https://virtualenv.pypa.io/en/stable/
macOS에서 를 사용하는 이유--user
플래그는 OS가 의존하는 라이브러리를 손상시키지 않도록 하기 위한 것입니다.많은 MacOS 사용자들에게 보수적인 접근법은 필요한 명령어를 사용하여 pip 설치 또는 업데이트를 피하는 것입니다.sudo
따라서 이 작업에는 에의 인스톨이 포함됩니다./usr/local/bin
...
참조: Neovim용 python 설치(https://github.com/zchee/deoplete-jedi/wiki/Setting-up-Python-for-Neovim)
왜 에 설치하는지는 잘 모르겠습니다./usr/local/bin
시스템이 Python 바이너리에만 의존한다는 사실을 고려할 때 Mac에서는 위험합니다./Library/Frameworks/
그리고./usr/bin
위에서 설명한 바와 같이, 설치 시/usr/local/bin
필요.sudo
이로 인해 시스템 라이브러리에서 비용이 많이 드는 실수를 저지르게 됩니다.그 때문에, 에의 인스톨~/.local/bin
이 위험을 피할 수 있는 확실한 방법이에요
참고 자료: Mac에서 python 사용(https://docs.python.org/2/using/mac.html)
마지막으로 패키지의 설치에는 어느 정도 이점이 있습니다./usr/local/bin
디렉토리 소유자를 변경하는 것이 타당한지 궁금합니다.root
로.user
? 이렇게 하면 시스템 의존적인 변경으로부터 보호하면서도 사용할 필요가 없어집니다.* 보안 디폴트는 과거에 Unix 시스템이 (서버로서) 얼마나 자주 사용되었는지를 보여주는 것입니까?아니면 최소한 서버를 호스팅하지 않는 Mac 사용자를 위한 좋은 방법인가요?
*주의: Mac의 SIP(System Integrity Protection) 기능은 사용자가 시스템에 의존하는 라이브러리를 변경하지 못하도록 보호합니다.
(E)
패키지를 ~/.local/에 삽입하는 것이 중요한 이유는 무엇입니까?왜 내 $PATH 어딘가에 실행 파일을 넣지 않는 거죠?
~/.local/bin directory
는 이론적으로 에 있을 것으로 예상됩니다.
이 사람들에 따르면 버그에 추가하지 않는 것은$PATH
사용할 때systemd
.
이 답변은 그것을 더 광범위하게 설명한다.
하지만 당신의 디스트로에는~/.local/bin
디렉토리는 다음 형식일 수 있습니다.~/.profile
):
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
디렉토리를 처음 작성할 때 로그아웃하고 다시 로그인해야 합니다.
자신의 Conda env를 사용하는 경우,--user
그리고 만약 당신이 공공 콘도를 사용한다면,--user
집에 pkgs를 설치하다~/.local/lib/
.
언급URL : https://stackoverflow.com/questions/42988977/what-is-the-purpose-of-pip-install-user
'sourcecode' 카테고리의 다른 글
Android Recycleer View 스크롤 성능 (0) | 2022.10.27 |
---|---|
Java에서 URL 또는 URI를 구성하는 관용적인 방법은 무엇입니까? (0) | 2022.10.27 |
PDO:: 날짜의 PARAM? (0) | 2022.10.27 |
MariaDB / Galera - 정지 노드 전체 3개 노드 클러스터 동결 (0) | 2022.10.27 |
Python에서는 epoch 이후 초를 datetime 개체로 변환하려면 어떻게 해야 합니까? (0) | 2022.10.27 |