prosource

가상 환경에서 pip을 사용할 때 "권한 거부"를 방지하는 방법

probook 2023. 5. 23. 22:00
반응형

가상 환경에서 pip을 사용할 때 "권한 거부"를 방지하는 방법

는 다을사용여하패합키니다배고포려음하로 파이썬 .pipUbuntu 시스템의 가상 환경에서 사용할 수 있지만 사용 권한 관련 문제가 발생합니다.예:

(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 packagenamepip 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

반응형