programing

pip 설치 실패: OSError: [Errno 13] 디렉터리에서 사용 권한이 거부됨

powerit 2023. 7. 17. 21:29
반응형

pip 설치 실패: OSError: [Errno 13] 디렉터리에서 사용 권한이 거부됨

pip install -r requirements.txt합니다.OSError: [Errno 13] Permission denied: '/usr/local/lib/...무엇이 문제이고 어떻게 해결해야 합니까?(장고를 설정하려고 합니다)

Installing collected packages: amqp, anyjson, arrow, beautifulsoup4, billiard, boto, braintree, celery, cffi, cryptography, Django, django-bower, django-braces, django-celery, django-crispy-forms, django-debug-toolbar, django-disqus, django-embed-video, django-filter, django-merchant, django-pagination, django-payments, django-storages, django-vote, django-wysiwyg-redactor, easy-thumbnails, enum34, gnureadline, idna, ipaddress, ipython, kombu, mock, names, ndg-httpsclient, Pillow, pyasn1, pycparser, pycrypto, PyJWT, pyOpenSSL, python-dateutil, pytz, requests, six, sqlparse, stripe, suds-jurko
Cleaning up...
Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 283, in run
    requirement_set.install(install_options, global_options, root=options.root_path)
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 1436, in install
    requirement.install(install_options, global_options, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 672, in install
    self.move_wheel_files(self.source_dir, root=root)
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 902, in move_wheel_files
    pycompile=self.pycompile,
  File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 206, in move_wheel_files
    clobber(source, lib_dir, True)
  File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 193, in clobber
    os.makedirs(destsubdir)
  File "/usr/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/amqp-1.4.6.dist-info'

사용하기 보다는sudo와 함께pip install먼저 시도하는 것이 좋습니다.pip install --user이 작업이 실패할 경우 여기에 있는 맨 위 게시물을 확인하십시오.

안 되는 는 ㅠㅠㅠㅠㅠㅠㅠsudo는 다음과 같습니다.

를 을 여 하 실 때 할 행 사와 함께 할 때sudo루트 사용자로 인터넷에서 임의의 파이썬 코드를 실행하고 있으며, 이는 상당히 큰 보안 위험입니다.누군가가 PyPI에 악의적인 프로젝트를 게시하고 사용자가 설치하면 공격자에게 시스템에 대한 루트 액세스 권한을 부여합니다.

옵션 a) 가상 환경을 생성하고 활성화한 후 설치:

virtualenv .venv
source .venv/bin/activate
pip install -r requirements.txt

옵션 b) 홈디어에 설치:

pip install --user -r requirements.txt

이 프로젝트의 요구 사항이 다른 프로젝트 요구 사항과 간섭하지 않도록 안전(a) 옵션을 사용하는 것이 좋습니다.

권한 없이 시스템 전체 경로에 패키지를 설치하려고 합니다.

  1. 일반적으로 다음을 사용할 수 있습니다.sudo시스템 전체 경로에 패키지를 설치하기 위해 사용자 책임 하에 일시적으로 슈퍼 사용자 권한을 얻는 경우:

     sudo pip install -r requirements.txt
    

    에 대해 자세히 알아보기sudo 여기에

    사실, 이것은 나쁜 생각이고 좋은 사용 사례가 없습니다. @wim의 댓글을 참조하십시오.

  2. 시스템 전체를 변경하지 않으려면 다음을 사용하여 사용자별 경로에 패키지를 설치할 수 있습니다.--user 깃발

    필요한 것은 다음과 같습니다.

     pip install --user runloop requirements.txt
    
  3. 마지막으로, 보다 세부적인 제어를 위해 개발 환경을 위한 우수한 솔루션인 가상 환경을 사용할 수도 있습니다. 특히 여러 프로젝트에서 작업 중이고 서로의 종속성을 추적하려는 경우에는 더욱 그렇습니다.

    를 사용하여 가상 환경을 활성화한 후

    $ my-virtualenv/bin/activate

    다음 명령은 시스템 전체 경로가 아닌 가상 환경 내부에 패키지를 설치합니다.

    pip install -r requirements.txt

Linux(Ubuntu 기반)에서 많은 어려움을 겪은 후에도 사용할 수 있었던 것이 무엇인지를 권한 거부 오류를 통해 명확히 설명하고 위의 Bert의 답변을 활용하여 이제 ...를 사용합니다.

$ pip install --user <package-name>

또는 요구사항 파일에서 pip을 실행하는 경우...

$ pip install --user -r requirements.txt

가상 환경 생성을 비롯한 모든 pip 설치에 대해 안정적으로 작동합니다.

하지만, 제 경험상 가장 깨끗한 해결책은 설치하는 것이었습니다.python-virtualenv그리고.virtualenvwrapper와 함께sudo apt-get install시스템 수준에서.

그런 다음 가상 환경 내에서pip install을 제외하고--user플래그 및 없음sudo전체적으로 훨씬 더 깨끗하고 안전하며 쉽습니다.

사용자에게 일부 Python 설치 경로에 대한 쓰기 권한이 없습니다.다음 방법으로 권한을 부여할 수 있습니다.

sudo chown -R $USER /absolute/path/to/directory

따라서 권한을 부여한 다음 다시 설치를 시도해야 합니다. 새 경로가 있는 경우 다음과 같은 권한도 부여해야 합니다.

sudo chown -R $USER /usr/local/lib/python2.7/

권한이 필요한 경우 'pip'을 'sudo'와 함께 사용할 수 없습니다.'sudo'를 사용하여 패키지를 설치할 수 있도록 트릭을 사용할 수 있습니다.pip 명령 앞에 'sudo python -m...'을 배치하면 됩니다.

sudo python -m pip install --user -r package_name

그것은 아래 명령에 의해 저를 위해 작동되었습니다.

pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org PACKAGE_NAME --user

또는

pip install --user <package name>

예:

pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org matplotlib --user

그래서 저는 완전히 다른 이유로 똑같은 오류를 얻었습니다.완전히 별개이지만 알려진 Homebrew + pip 버그 때문에 Google Cloud의 도움말 문서에 나열된 이 해결 방법을 따라 홈 디렉토리에 .pydistutils.cfg 파일을 만듭니다.이 파일에는 특정 라이브러리 설치에만 사용해야 하는 특수 구성이 있습니다.패키지를 설치한 후에 disutils.cfg 파일을 제거했어야 했는데 깜빡했습니다.그래서 나에게 해결책은 사실...

rm ~/.pydistutils.cfg.

그리고 나서 모든 것이 정상적으로 작동했습니다.물론 실제 이유로 해당 파일에 구성이 있는 경우에는 해당 파일을 스트레이트로 정리하는 것을 원하지 않습니다.하지만 다른 사람이 그 문제를 해결하고 파일을 제거하는 것을 잊어버린 경우에 대비하여, 이것이 저에게 도움이 되었습니다!

그것은 정당한 허가 문제입니다.

sudo chown -R $USER /path to your python installed directory

기본값은 입니다./usr/local/lib/python2.7/

아니면 시도해 보세요.

pip install --user -r package_name

그리고는 말합니다.pip install -r requirements.txt이것은 당신의 환경 안에 설치될 것입니다.

말하지 마,sudo pip install -r requirements.txt이것은 임의의 파이썬 경로에 설치됩니다.

언급URL : https://stackoverflow.com/questions/31512422/pip-install-failing-with-oserror-errno-13-permission-denied-on-directory

반응형