2011-09-19 31 views
162

Tôi đang tham gia một số lớp học đại học và đã được cung cấp 'tài khoản hướng dẫn', đây là tài khoản trường học mà tôi có thể chuyển sang làm việc. Tôi muốn chạy Numpy, matplotlib, mã scipy chuyên sâu trên máy tính của mình, nhưng tôi không thể cài đặt các mô-đun này vì tôi không phải là quản trị viên hệ thống.Làm thế nào để cài đặt mô-đun python mà không có quyền truy cập root?

Tôi làm cách nào để cài đặt?

+12

Bạn có thể vượt qua --user hoặc --prefix để setup.py cho gói bạn đang cài đặt để cài đặt nó cục bộ.Xem [cài đặt cảnh báo cho các mô-đun Python] (http://docs.python.org/install/index.html#alternate-installation) – arunkumar

Trả lời

225

Trong hầu hết các tình huống giải pháp tốt nhất là dựa vào cái gọi là "người sử dụng trang web" vị trí (xem PEP để biết chi tiết) bằng cách chạy:

pip install --user package_name 

Dưới đây là một "bằng tay" cách thêm từ của tôi câu trả lời gốc, bạn không cần phải đọc nó nếu giải pháp trên hoạt động cho bạn.


Với easy_install bạn có thể làm:

easy_install --prefix=$HOME/local package_name 

mà sẽ cài đặt vào

$HOME/local/lib/pythonX.Y/site-packages 

(thư mục 'địa phương' là một cái tên tiêu biểu có nhiều người sử dụng, nhưng tất nhiên bạn có thể chỉ định bất kỳ thư mục nào bạn có quyền ghi vào).

Bạn sẽ cần phải tự tạo

$HOME/local/lib/pythonX.Y/site-packages 

và thêm nó vào biến môi trường PYTHONPATH của bạn (nếu không easy_install sẽ phàn nàn - btw chạy lệnh trên một lần để tìm giá trị chính xác cho X.Y).

Nếu bạn không sử dụng easy_install, hãy tìm tùy chọn tiền tố, hầu hết các tập lệnh cài đặt đều cho phép bạn chỉ định một mã.

Với pip bạn có thể sử dụng:

pip install --install-option="--prefix=$HOME/local" package_name 
+0

nếu python không có 'pip' và' easy_install' có sẵn thì sao? – Girardi

+1

@Girardi: sau đó [cài đặt 'pip'] (http://stackoverflow.com/a/13958308/4279) – jfs

+0

vâng, đó là những gì tôi yêu cầu cho admin =) – Girardi

8

Nếu bạn phải sử dụng một distutils setup.py kịch bản, có một số tùy chọn dòng lệnh cho buộc một điểm đến cài đặt. Xem http://docs.python.org/install/index.html#alternate-installation. Nếu sự cố này lặp lại, bạn có thể thiết lập tệp cấu hình của distutils, xem http://docs.python.org/install/index.html#inst-config-files.

Đặt biến PYTHONPATH được mô tả trong bài đăng tihos.

+1

Cảm ơn rất nhiều. Tôi đã cài đặt thành công thư viện 'lxml' bằng cách sử dụng' python /setup.py install --home =

' –

36

Bạn cũng có thể tạo một trăn virtualenv (https://pypi.python.org/pypi/virtualenv), đặc biệt khi không có quyền truy cập hoặc cài đặt lệnh easy_install.

Thi 3 lệnh trong shell sẽ đủ:

$ curl -O https://raw.github.com/pypa/virtualenv/master/virtualenv.py 
$ python virtualenv.py my_new_env 
$ . my_new_env/bin/activate 
(my_new_env)$ pip install package_name 

nguồn và biết thêm: https://virtualenv.pypa.io/en/latest/installation/

+0

Câu trả lời này hữu ích cho tôi trên một hệ thống không cài đặt' pip'. –

+0

Tôi đã thử một biến thể cho cài đặt python cục bộ của mình. curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | ~/Python-2.7.8/python – Neerav

+2

Nguồn dường như đã chuyển và phần trên không hoạt động. Các hướng dẫn tương tự tại 'https: // virtualenv.pypa.io/vi/latest/installation /' làm việc tốt mặc dù :) –

5

câu hỏi quan trọng. Máy chủ tôi sử dụng (Ubuntu 12.04) có easy_install3 nhưng không phải là pip3.Đây là cách tôi đã cài đặt Pip và sau đó gói khác vào thư mục nhà của tôi

  1. quản trị được hỏi để cài đặt Ubuntu gói python3-setuptools

  2. cài đặt pip

Như thế này:

easy_install3 --prefix=$HOME/.local pip 
mkdir -p $HOME/.local/lib/python3.2/site-packages 
easy_install3 --prefix=$HOME/.local pip 
  1. Thêm Pip (và các ứng dụng Python khác để đường dẫn)

Như thế này:

PATH="$HOME/.local/bin:$PATH" 
echo PATH="$HOME/.local/bin:$PATH" > $HOME/.profile 
  1. Cài đặt Python gói

như thế này

pip3 install --user httpie 

# test httpie package 
http httpbin.org 
2

tôi sử dụng JuJu mà về cơ bản cho phép thực sự có phân phối iny linux (chỉ chứa trình quản lý gói) bên trong thư mục $ HOME/.juju của bạn.

Nó cho phép có hệ thống tùy chỉnh của bạn bên trong thư mục chính có thể truy cập thông qua proot và do đó, bạn có thể cài đặt bất kỳ gói nào không có đặc quyền root. Nó sẽ chạy đúng cho tất cả các bản phân phối Linux chính, giới hạn duy nhất là JuJu có thể chạy trên hạt nhân Linux với phiên bản được giới thiệu tối thiểu 2.6.32.

Ví dụ, sau khi cài đặt JuJu để cài đặt pip chỉ cần gõ như sau:

$>juju -f 
(juju)$> pacman -S python-pip 
(juju)> pip 
9

Bạn có thể chạy easy_install để cài đặt các gói python trong thư mục chính của bạn thậm chí không có quyền truy cập root. Có một cách tiêu chuẩn để thực hiện việc này bằng cách sử dụng site.USER_BASE mặc định là $ HOME/.local hoặc $ HOME/Library/Python/2.7/bin và được bao gồm theo mặc định trên PYTHONPATH

Để thực hiện việc này, hãy tạo .pydistutils.cfg trong thư mục chính của bạn:

cat > $HOME/.pydistutils.cfg <<EOF 
[install] 
user=1 
EOF 

Bây giờ bạn có thể chạy easy_install không dùng root:

easy_install boto 

Ngoài ra, điều này cũng cho phép bạn chạy pip mà không cần truy cập root:

pip install boto 

Điều này phù hợp với tôi.

Nguồn từ Wesley Tanaka blog: http://wtanaka.com/node/8095

+1

Điều này làm việc cho tôi để cài đặt mà không cần truy cập root trên máy chủ Linux. Cảm ơn bạn Nhưng tôi không có bất kỳ ý tưởng tại sao nó hoạt động. Có thể nào cơ thể đưa ra gợi ý không? – ChathuraG

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