Tôi đang cố sử dụng pip để cài đặt gói tại địa phương theo số ~/.local
. Vấn đề là gói (trong phiên bản cũ) đã có sẵn trên toàn cầu trên hệ thống. Mặc dù thư mục gói python toàn cục là không phải trong số PYTHONPATH
của tôi, pip vẫn từ chối cài đặt, nghĩ rằng yêu cầu gói được thỏa mãn. Đây là tương tự như vấn đề mô tả ở đây, ngoại trừ tôi không sử dụng sudo
vì vậy giải pháp này không áp dụng: pip - Requirement already satisfied?sử dụng pip để cài đặt các gói tại địa phương mặc dù các yêu cầu toàn cầu hài lòng
Nếu tôi làm:
pip install --user numpy
Nó nói:
Requirement already satisfied (use --upgrade to upgrade): numpy in /usr/local/lib/python2.7/dist-packages/numpy-1.6.2-py2.7-linux-x86_64.egg
Tuy nhiên, /usr/local/lib/...
không có trong số PYTHONPATH
của tôi. Điều duy nhất trong PYTHONPATH
là ~/.local
.
Nếu tôi cố gắng làm:
pip install --user --upgrade numpy
Nó tải về NumPy và biên dịch nó, và sau đó nghĩ rằng tôi đang làm một toàn cầu cài đặt mặc dù cờ --user và tôi nhận được:
Installing collected packages: numpy
Found existing installation: numpy 1.6.2
Uninstalling numpy:
Exception:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/pip-1.2.1-py2.7.egg/pip/basecommand.py", line 107, in main
status = self.run(options, args)
File "/usr/local/lib/python2.7/dist-packages/pip-1.2.1-py2.7.egg/pip/commands/install.py", line 261, in run
requirement_set.install(install_options, global_options)
File "/usr/local/lib/python2.7/dist-packages/pip-1.2.1-py2.7.egg/pip/req.py", line 1162, in install
requirement.uninstall(auto_confirm=True)
File "/usr/local/lib/python2.7/dist-packages/pip-1.2.1-py2.7.egg/pip/req.py", line 495, in uninstall
paths_to_remove.remove(auto_confirm)
File "/usr/local/lib/python2.7/dist-packages/pip-1.2.1-py2.7.egg/pip/req.py", line 1492, in remove
renames(path, new_path)
File "/usr/local/lib/python2.7/dist-packages/pip-1.2.1-py2.7.egg/pip/util.py", line 273, in renames
shutil.move(old, new)
File "/usr/lib/python2.7/shutil.py", line 300, in move
os.unlink(src)
OSError: [Errno 13] Permission denied: '/usr/bin/f2py'
Làm cách nào để khắc phục sự cố này? Tôi không chắc chắn lý do tại sao nó cố gắng làm bất cứ điều gì đòi hỏi quyền toàn cầu khi nó được thông qua cờ --user
.
Có cách nào để yêu cầu pip chỉ sử dụng ~/.local
và bỏ qua mọi thứ khác trên hệ thống? (Tôi không muốn sử dụng virtualenv Đó là không cần thiết ở đây, tôi không muốn nhiều môi trường, chỉ là một!).
tại sao bạn không sử dụng 'virtualenv', đây không phải là lý do chính xác được tạo ra? – dm03514
Numpy không hoạt động tốt với pip. Nó đang cố gắng cài đặt 'f2py' trên'/usr/bin/'. Có lẽ vì nó nằm ngoài 'site-packages' của python.Nhiều khả năng sẽ có các tệp khác phải được cài đặt bên ngoài đó và pip dường như không biết cách xử lý nó. Không chắc chắn nếu virtualenv sẽ giúp ở đây. – tiago
@tiago * Numpy không chơi tốt với pip. Nó đang cố gắng để cài đặt f2py trên /usr/bin/.* Không, nó không. Đó là pip cố gắng để ** gỡ cài đặt ** hệ thống numpy mà không thành công do thiếu quyền truy cập. Xem câu trả lời của tôi. –