가상 환경에서 pip을 사용할 때 "권한 거부"를 방지하는 방법
는 다을사용여하패합키니다배고포려음하로 파이썬 .pip
Ubuntu 시스템의 가상 환경에서 사용할 수 있지만 사용 권한 관련 문제가 발생합니다.예:
(TestVirtualEnv)test@testServer:~$ pip install markdown2
종료 시간:
오류: '/home/test/virtualenvs/TestVirtualEnvs/lib/python3.3/site-packages/markdown2.py '을(를) 생성할 수 없습니다. 권한이 거부되었습니다.
는 할 수 없어 ㅠㅠsudo
가상 환경이 아닌 전역에 패키지를 설치하기 때문입니다.chown
에드site-packages
;ls
에는 에관디만표다니시와 만 나와 있습니다.easy_install
,pip
그리고.setuptools
마크다운과 관련된 건 아무것도 없어요
은 다음과 같습니다.pip
권한 관련 오류가 발생하지 않는 경우
솔루션:
가상 환경을 루트로 생성한 경우 다음 명령을 실행합니다.
sudo chown -R your_username:your_username path/to/virtuaelenv/
이것은 아마도 당신의 문제를 해결할 것입니다.
건배.
virtualenv
권한문제다생때수있다습니발생할성할음을 할 때 사용 권한 문제가 할 수 .virtualenv
~하듯이sudo
그리고 나서 작동하지 않습니다.sudo
에 시대에virtualenv
.
질문의 댓글에서 확인된 바와 같이, 여기서의 해결책은 다음을 만드는 것입니다.virtualenv
없이sudo
그 안에서 일할 수 있는(글을 쓰지 않는)sudo
.
루트를 사용하여 가상 환경을 생성한 경우 이 명령을 사용합니다.
sudo su
루트 액세스 권한을 부여한 다음 이를 사용하여 가상 환경을 활성화합니다.
source /root/.env/ENV_NAME/bin/activate
제경에는저, 는우는을 했습니다.mkvirtualenv
하지만 내가 파이썬3를 사용할 것이라고 말하지 않았습니다.다음 오류가 발생했습니다.
mkvirtualenv hug
pip3 install hug -U
....
error: could not create '/usr/lib/python3.4/site-packages': Permission denied
python3을 지정한 후 작동했습니다.
mkvirtualenv --python=/usr/bin/python3 hug
pip3 install hug -U
sudo를 사용하여 가상 환경을 생성하지 않았습니다.그래서 세바스찬의 대답은 저에게 적용되지 않았습니다.은 내프로이름은의입니다.utils
확인했습니다utils
디렉터리 및 확인:
-rw-r--r-- 1 macuser staff 983 6 Jan 15:17 README.md
drwxr-xr-x 6 root staff 204 6 Jan 14:36 utils.egg-info
-rw-r--r-- 1 macuser staff 31 6 Jan 15:09 requirements.txt
당신이 볼 수 있듯이.utils.egg-info
은 소자유입니다.root
것은 아니다.macuser
그래서 나에게 주는 것입니다.permission denied
도 오니다를 제거해야 . 또한 제거해야 했습니다./Users/macuser/.virtualenvs/armoury/lib/python2.7/site-packages/utils.egg-link
것처럼진어들에 의해 에.root
뿐만 아니라.했다pip install -e .
그것들을 제거한 후에 다시, 그리고 그것은 효과가 있었습니다.
나는 받고 있었습니다.permission denied
가상환활하고할때려성는화저다. 이 비슷한 문제에 이 될 수 을 찾기 이 했습니다. 그래서 아마도 이것은 비슷한 문제에 직면한 다른 사람들에게도 도움이 될 것입니다.
source your_env_name_goes_here/bin/activate
.source
사용 중인 경우zsh
사용할 올바른 명령입니다.그렇지 않은 경우 Python 문서에는 플랫폼 및 셸(윈도우즈 또는 Mac, bash 또는 powershell 등)에 따라 사용할 명령 테이블이 있습니다.
pip을 사용하기 전에 가상 환경을 활성화하지 않았습니다.
사용해 보십시오.
$(your venv path) . bin/activate
그런 다음 pip-r 요구사항을 사용합니다.기본 폴더의 txt
기존 가상 환경 내에서 새 venv를 생성한 후에도 (우연한 사고로) 이러한 현상이 발생했습니다. 이를 진단하는 쉬운 방법은 가상 환경이 어디에 있는지 확인하는 것입니다.python
다음과 같이 연결됩니다. 즉, 실행:
ls -l venv/bin/python
적절한 Python 바이너리를 가리키는지 확인합니다.대부분의 시스템에서 이는 다음과 같습니다./usr/bin/python
또는/usr/bin/python3
기존 가상 환경을 가리키면 다음과 같습니다./home/youruser/somedir/bin/python
기존 가상 환경(즉, 실행)을 "내부"하지 않도록 하면서 venv를 다시 만드는 것을 제안합니다.deactivate
)
sudo를 사용하는 경우 virtualenv를 생성하는 동안 디렉토리는 루트 권한으로 생성됩니다.따라서 sudo 사용자가 아닌 사용자가 있는 패키지를 설치하려고 하면 패키지에 설치할 수 있는 권한이 없습니다.따라서 항상 sudo 없이 virtualenv를 생성하고 sudo 없이 설치합니다.
글로벌 python에 설치된 패키지를 virtualenv에 복사할 수도 있습니다.
cp -r /lib/python/site-packages/* virtualenv/lib/python/site-packages/
센토스 7에서 이것은 효과가 있었습니다.
먼저 생성합니다.
virtualenv --python=/usr/local/bin/python3.8 fastapi
활성화하기 위해
source fastapi/bin/activate
저도 이 문제가 있었습니다. 및 다음을사파및디소확권다인니습했한을과를 사용하여 했습니다.ls -hal
제가 파일을 소유하고 있고 올바른 권한을 가지고 있습니다.나에게 있어, 문제는 실행하는 것입니다.pip
명령, 하지만 그것은 잘못된 것입니다.pip
달기보를 실행해 .which pip
사용 중인 pip 버전을 확인합니다.에서 를 합니다.python3 -m pip install packagename
에 pip install packagename
▁run있요▁if▁can▁you어수▁gets더▁it,▁worse도를 실행할 수 있습니다./path/to/the/pip/you/want/pip install filename
.
저도 같은 문제가 있었습니다.*를 생성하고 Windows 11에서 실행 중인 VS Code 내의 Git Bash에서 일반 사용자로 venv를 활성화했으며 pip를 실행하려고 할 때 "권한 거부"를 받았습니다.저는 sudo(기업용 노트북)를 전혀 사용할 수 없었습니다.
해결책은 다음과 같습니다.
일반(루트 사용자가 아닌)과 같이 venv를 생성합니다.
python -m venv <venv_name>
venv를 활성화합니다.
source venv/Scripts/activate
그런 다음, 요구사항을 사용한다고 가정합니다.txt 파일, 실행:
python -m pip install -r requirements.txt
핵심은 "파이톤-m"입니다.
패키지가 제대로 설치되지 않으면 파이프를 업그레이드해야 할 수 있습니다.시도:
python -m pip install --upgrade pip
그런 다음 요구 사항을 다시 설치해 보십시오.
위의 솔루션과 동일한 오류인지 확인하려면 다음 방법으로 오류를 다시 생성할 수 있습니다.
*venv를 활성화한 후 다음을 실행합니다.
python --version
또는
which python
그리고 둘 다 당신이 venv 내에서 파이썬을 사용하고 있다는 것을 나타내야 합니다(다시 말하지만, 당신이 그것을 활성화했다고 가정하면).
그런 다음 실행:
pip --version
그리고 당신의 허락이 거부된 것을 보게 될 것입니다.
$ pip --version
bash: \venv/Scripts/pip: Permission denied
그 때 달리기
python -m pip --version
정확한 venv 버전과 venv 내 경로를 보여줘야 합니다.
언급URL : https://stackoverflow.com/questions/19471972/how-to-avoid-permission-denied-when-using-pip-with-virtualenv
'prosource' 카테고리의 다른 글
윈도우에 글로벌 npm 설치 위치? (0) | 2023.05.23 |
---|---|
'git status'는 변경된 파일을 표시하지만 'git diff'는 표시하지 않습니다. (0) | 2023.05.23 |
Postgres에서 잠금을 유지하는 쿼리를 탐지하는 방법은 무엇입니까? (0) | 2023.05.23 |
주어진 코드베이스의 변화를 고유하게 식별하기 위해 *일반적으로* 필요한 Gitsha는 얼마나 됩니까? (0) | 2023.05.23 |
이클립스에서 문자를 새 줄로 바꾸려면 어떻게 해야 합니까? (0) | 2023.05.23 |