2015-01-09 18 views
124

Trong khi cài đặt pip và python Tôi đã chạy vào một nói rằng:pips cài đặt: Vui lòng kiểm tra quyền và chủ sở hữu của thư mục đó

Thư mục '/ Users/Parthenon/Library/Logs/pi' hay của nó thư mục cha không thuộc sở hữu của người dùng hiện tại và nhật ký gỡ lỗi đã bị tắt. Vui lòng kiểm tra quyền và chủ sở hữu của thư mục đó. Nếu thực hiện pip với sudo, bạn có thể muốn cờ -H.

vì bây giờ tôi phải cài đặt bằng cách sử dụng sudo.

Tôi đã có trăn và một số thư viện đã được cài đặt trên máy Mac của mình, tôi đang chạy Yosemite. Gần đây tôi đã phải xóa sạch và sau đó cài đặt lại hệ điều hành. Bây giờ tôi nhận được dấu nhắc này và tôi đang gặp khó khăn để tìm hiểu làm thế nào để thay đổi nó

Trước khi dòng lệnh của tôi là Parthenon$ bây giờ nó Philips-MBP:~ Parthenon$

tôi là chủ sở hữu duy nhất của máy tính này và đây là tài khoản duy nhất trên đó. Điều này có vẻ là một vấn đề khi nâng cấp lên python 3.4, không có gì có vẻ là đúng nơi, virtualenv không phải là nơi tôi mong đợi nó, v.v.

+0

Tên tài khoản của bạn có phải là Philip không? – komaromy

+0

Tôi chỉ nhận thấy điều này xảy ra khi sử dụng pip trên máy của riêng tôi ngày hôm qua, ý bạn là gì bởi virtualenv không phải là nơi bạn mong đợi nó? –

+0

Tôi đã cài đặt Python 3.4 trên máy tính của tôi, nhưng khi tôi chạy python trong thiết bị đầu cuối của tôi nó vẫn chạy 2,7 ​​ngay cả sau khi đi qua toàn bộ quá trình cài đặt. Tôi chỉ đề cập đến virtualenv vì tôi thường mong đợi tìm nó trong Library/Python/3.4 nhưng không có Library/Python/3.4 –

Trả lời

43

Vấn đề ở đây là bạn bằng cách nào đó được cài đặt vào virtualenv sử dụng sudo. Có thể do tai nạn. Điều này có nghĩa là root người dùng sẽ ghi lại dữ liệu gói Python, làm cho tất cả các tệp thuộc sở hữu của người chủ và người dùng bình thường của bạn không thể ghi các tệp đó nữa. Thông thường virtualenv chỉ nên được sử dụng và sở hữu bởi người dùng UNIX bình thường của bạn.

Bạn có thể khắc phục sự cố bằng cách thay đổi gói quyền của tệp UNIX cho người dùng của mình. Hãy thử:

$ sudo chown -R USERNAME /Users/USERNAME/Library/Logs/pip 
$ sudo chown -R USERNAME /Users/USERNAME/Library/Caches/pip 

sau đó pip sẽ có thể ghi lại các tệp đó.

More information about UNIX file permission management

+0

Pip vẫn viết với lỗi. Tôi cũng có một cảnh báo tương tự và các điều khoản của tôi là chính xác, OP không thực sự sử dụng virtualenv vì vậy sẽ có ý nghĩa khi cài đặt các gói trên toàn cầu sẽ yêu cầu sudo. –

+0

@PadraicCunningham: Nếu pip đưa ra lỗi cho phép của bạn không chính xác, vui lòng hiển thị quyền đối với tệp của bạn, vì vậy chúng tôi có thể tìm ra sự cố với chúng. Nếu không, việc giúp đỡ sẽ là một phát bắn trong bóng tối. –

+0

Ngoài ra tôi đề nghị bạn mở một câu hỏi khác bởi vì vấn đề của bạn có thể khác với những gì tác giả gốc có –

109

Tôi cũng thấy sự thay đổi này trên máy Mac của tôi khi tôi đi từ chạy 'pip' thành 'sudo pip'

Thêm '-H' để sudo gây ra thông báo ra đi cho tôi. Ví dụ.

sudo -H pip cài đặt foo

'người đàn ông sudo' nói với tôi rằng '-H' gây sudo để đặt $ HOME để người dùng mục tiêu (root trong trường hợp này).

Vì vậy, có vẻ như pip đang nhìn vào $ HOME/Library/Log và sudo theo mặc định không đặt HOME thành ~ root. Không ngạc nhiên ~/Library/Log được sở hữu bởi bạn với tư cách người dùng chứ không phải root.

Tôi nghi ngờ đây là một số thay đổi gần đây trong pip. Tôi sẽ chạy nó với 'sudo -H' để làm việc xung quanh.

+14

Xin lưu ý rằng việc sử dụng 'sudo pip' là hoàn toàn không chính xác. Để biết thêm thông tin, vui lòng tham khảo tại đây http://stackoverflow.com/questions/33004708/osx-el-capitan-sudo-pip-install-oserror-errno-1-operation-not-permitted/33004920#33004920 –

+0

Tôi cũng vậy vấn đề, nhưng bây giờ tôi phải cài đặt bằng cờ "-H". –

38

pip install --user <package name>(không cần sudo) đã làm việc cho tôi vì một vấn đề rất giống nhau.

+0

Bạn phải đưa ra ít nhất một yêu cầu để cài đặt (xem "pip help install") – Amir

Các vấn đề liên quan