digitalocean에서 Ubuntu로 시작: "권한이 거부되었습니다"로 인해 pip가 실패함

digitalocean에서 Ubuntu로 시작: "권한이 거부되었습니다"로 인해 pip가 실패함

저는 Windows 사용자이자 Ubuntu 및 DigitalOcean 초보자입니다. 다음 단계를 완료했습니다.

https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-12-04

그리고 나는 겪고 있어요

https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-django-with-postgres-nginx-and-gunicorn

하지만 에서는 실패하고 있습니다 pip install django.

OSError: [Errno 13] Permission denied: '/opt/myenv/build'

역 추적:

(myenv)jeffy@originaldjangster:~$ pip install django
Downloading/unpacking django
Cleaning up...
Exception:
Traceback (most recent call last):
  File "/opt/myenv/local/lib/python2.7/site-packages/pip/basecommand.py", line 1                         22, in main
    status = self.run(options, args)
  File "/opt/myenv/local/lib/python2.7/site-packages/pip/commands/install.py", l                         ine 278, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundl                         e=self.bundle)
  File "/opt/myenv/local/lib/python2.7/site-packages/pip/req.py", line 1153, in                          prepare_files
    location = req_to_install.build_location(self.build_dir, not self.is_downloa                         d)
  File "/opt/myenv/local/lib/python2.7/site-packages/pip/req.py", line 218, in b                         uild_location
    _make_build_dir(build_dir)
  File "/opt/myenv/local/lib/python2.7/site-packages/pip/req.py", line 1527, in                          _make_build_dir
    os.makedirs(build_dir)
  File "/opt/myenv/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/opt/myenv/build'

Storing debug log for failure in /home/jeffy/.pip/pip.log

디버그 로그:

jeffy@originaldjangster:~$ more /home/jeffy/.pip/pip.log
------------------------------------------------------------
/opt/myenv/bin/pip run on Tue Aug  5 14:45:38 2014
Downloading/unpacking django
Cleaning up...
Exception:
Traceback (most recent call last):
  File "/opt/myenv/local/lib/python2.7/site-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/opt/myenv/local/lib/python2.7/site-packages/pip/commands/install.py", line 278, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/opt/myenv/local/lib/python2.7/site-packages/pip/req.py", line 1153, in prepare_files
    location = req_to_install.build_location(self.build_dir, not self.is_download)
  File "/opt/myenv/local/lib/python2.7/site-packages/pip/req.py", line 218, in build_location
    _make_build_dir(build_dir)
  File "/opt/myenv/local/lib/python2.7/site-packages/pip/req.py", line 1527, in _make_build_dir
    os.makedirs(build_dir)
  File "/opt/myenv/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/opt/myenv/build'
jeffy@originaldjangster:~$

영상:

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL
jeffy   ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

문제 단계를 건너뛰고 까지 성공적으로 진행했는데 pip install gunicorn, 이때 동일한 오류가 발생했습니다.

OSError: [Errno 13] Permission denied: '/opt/myenv/build'

참고: 지시에 따라 활성화된 virtualenv 내에서 이 작업을 수행하고 있습니다.

내가 도대체 ​​뭘 잘못하고있는 겁니까? 도와 주셔서 감사합니다.


위의 내용이 나의 주요 문제입니다. 추가적으로 아래 사항도 답변이 쉬우시면 그렇게 해주세요. 위의 내용을 파악하자마자 취해야 할 단계는 다음과 같습니다.

또한 Python 2.7.6에서 Python 3.4.1(또는 사용 가능한 가장 높은 Ubuntu 호환 릴리스)로 업그레이드하는 방법도 알아야 합니다. Python은 이미 설치되어 있었습니다. 저는 설치하지 않았습니다.

3.4.1만 갖고 싶습니다. 나는 2.7과 3.4를 나란히 놓고 싶지 않습니다.

jeffy@originaldjangster:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.1 LTS
Release:        14.04
Codename:       trusty
jeffy@originaldjangster:~$ python --version 
Python 2.7.6

답변1

디지털 오션 지원:

따라서 사용자가 visudo에서 모든 명령을 실행할 수 있도록 설정되어 있는지 여부에 관계없이 모든 명령에 "sudo"를 추가해야 합니다.

Python의 경우 버전 2.7은 간단히 제거할 수 없습니다. Python 버전 3.xx를 사용하려면 python3 명령을 사용해야 합니다.


나:

그랬던 것 같습니다. "설치 방법" 가이드 https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-django-with-postgres-nginx-and-gunicorn "pip" 명령 앞에 "sudo" 접두사가 없고 그래야 하는 것처럼 보입니다. 3.4도 이미 설치되어 있는 것 같습니다. 훌륭한.


업데이트

위의 내용으로는 충분하지 않은 것으로 나타났습니다. ipython을 설치하지만 설치하지 않습니다.virtualenv에서-- 디렉토리가 전혀 ipython생성되지 않았습니다. /opt/jenv/bin이렇게 설치하면 어차피 내 환경에서는 IPython을 시작하면 Python 3.4가 아닌 Python 2.7을 사용하게 된다. (시작할 때 말하는 내용입니다).

해결책은 virtualenv를 활성화한 다음 다음을 사용하여 설치하는 것입니다.virtualenv의씨:

sudo /opt/jenv/bin/pip install ipython

(이 없으면 작동하지 않는다는 점을 sudo상기시켜 주십시오. 질문을 참조하십시오.) IPython은 이제 bin 디렉토리에 올바르게 설치되고 시작되면 Python 3.4를 사용하고 있다고 말합니다(virtualenv가 로 생성된 경우 -p /usr/bin/python3.4).

것 같다이 지침변경해야합니다.

관련 정보