Cách đơn giản nhất để thực hiện cài đặt cục bộ người dùng của gói python là gì?


32

Tôi không muốn đối phó với virtualenv để cài đặt Python cục bộ, tôi chỉ muốn cài đặt một vài gói cục bộ mà không xử lý PYTHONPATHbiến môi trường, tôi phải làm thế nào?


Bạn nói "đối phó" như thể virtualenv là một rắc rối. Tôi đã tìm thấy điều hoàn toàn ngược lại là đúng. (Có lẽ bạn muốn --system-site-packages?)
Andreas Klöckner

nó được đặt ra theo giả thuyết :) virtualenv thật tuyệt vời nhưng nó không phù hợp với mọi trường hợp sử dụng.
Aron Ahmadia

Câu trả lời:


48

Python (kể từ 2.6 và 3.0 ) hiện tìm kiếm trong thư mục ~ / .local cho các cài đặt cục bộ, không yêu cầu quyền quản trị để cài đặt, vì vậy bạn chỉ cần trỏ trình cài đặt của mình vào thư mục đó.

Nếu bạn đã tải xuống gói foovà muốn cài đặt thủ công, hãy nhập:

cd path/to/foo
python setup.py install --user

Nếu bạn đang sử dụng easy_install và muốn gói được tải xuống và cài đặt:

easy_install --prefix=$HOME/.local/ foo

Cập nhật bởi RafiK

pip install --user foo

Câu trả lời sau đây được cung cấp cho các mục đích lịch sử: Sẽ tốn công hơn một chút nếu bạn đang sử dụng pip để tải xuống và cài đặt:

pip install --install-option="--prefix=$HOME/.local" foo

3
update: pip hiện hỗ trợ cờ --user: pip install --user SomePackage (liên kết đến thủ công) Sử dụng cái này, mọi thứ sẽ hoạt động tốt ngay cả trên các hệ điều hành khác nhau
RafiK 11/03/2015

5

Mặc dù tôi thích Python như một ngôn ngữ, việc phân phối các gói Python là một mớ hỗn độn. Tôi luôn thấy những người không quen thuộc với Python đang vật lộn với nó.

Bên cạnh cài đặt cục bộ người dùng như Aron (sử dụng --user hoặc --prefix), một tùy chọn khác là EasyBuild ( http://hpcugent.github.com/easybuild/ ). Không chỉ cho các gói Python, mà cho bất kỳ gói phần mềm (khoa học) nào. Khi EasyBuild có hỗ trợ cho nó, việc xây dựng và cài đặt gói phần mềm về cơ bản là một lệnh duy nhất.

Để biết danh sách các gói phần mềm hiện được hỗ trợ, hãy xem https://github.com/hpcugent/easybuild/wiki/List-of-supported-software-packages .

Tuyên bố miễn trừ trách nhiệm: Tôi là nhà phát triển của EasyBuild.


2

@Aron: Đảm bảo thêm đường dẫn gói trang web cục bộ vào biến môi trường $ PYTHONPATH


Nó tự động được bao gồm trong đường dẫn trang web kể từ Python 2.6 và Python 3.0 :)
Aron Ahmadia

@AronAhmadia không nếu bạn sử dụng --prefixtùy chọn.
Jens Timmerman

@JensTimmerman - đường dẫn trang web là nơi Python nhìn khi nó bắt đầu cho các mô-đun để nhập, bất cứ khi nào bạn đang chạy Python. Tùy chọn tiền tố chỉ định nơi cài đặt gói đã cho khi bạn cài đặt gói Python. Hai quan niệm hoàn toàn riêng biệt.
Aron Ahmadia

@AronAhmadia có, quan điểm của tôi là khi bạn sử dụng easy_install --prefix = / tmp, bạn cần thêm "/tmp/lib/pythonx.x/site-packages" vào biến PYTHONPATH của mình nếu không nó sẽ không được python chọn.
Jens Timmerman

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.