Helpex - Trao đổi & giúp đỡ Đăng nhập

Cài đặt một gói Python vào một thư mục khác bằng cách sử dụng pip?

Lý Ái Thi
· 17:55 26/05/2010
16 giờ trước

Tôi biết câu trả lời rõ ràng là sử dụng virtualenv và virtualenvwrapper, nhưng vì nhiều lý do nên tôi không thể / không muốn làm điều đó.

Vậy làm cách nào để sửa đổi lệnh

pip install package_name

để thực hiện pipcài đặt gói ở đâu đó khác với gói mặc định site-packages?

485 hữu ích 5 bình luận 604k xem chia sẻ
Hoàng Thanh Đan
· 19:59 26/05/2010
19:59:36 26/05/2010

Sử dụng:

pip install --install-option="--prefix=$PREFIX_PATH" package_name

Bạn cũng có thể muốn sử dụng --ignore-installedđể buộc cài đặt lại tất cả các phần phụ thuộc bằng cách sử dụng tiền tố mới này. Bạn có thể sử dụng --install-optionnhiều lần để thêm bất kỳ tùy chọn nào mà bạn có thể sử dụng python setup.py install( --prefixcó thể là những gì bạn muốn, nhưng có rất nhiều tùy chọn khác mà bạn có thể sử dụng).

354 hữu ích 5 bình luận chia sẻ
Tạ Quốc Hạnh
· 13:10 16/10/2013
13:10:54 16/10/2013

Công tắc --target là thứ bạn đang tìm kiếm:

pip install --target=d:\somewhere\other\than\the\default package_name

Nhưng bạn vẫn cần thêm d:\somewhere\other\than\the\defaultvào PYTHONPATHđể thực sự sử dụng chúng từ vị trí đó.

-t, --target <dir>
Cài đặt các gói vào <dir>. Theo mặc định, điều này sẽ không thay thế các tệp / thư mục hiện có trong <dir>.
Sử dụng --upgrade để thay thế các gói hiện có trong <dir> bằng các phiên bản mới.


Nâng cấp pip nếu không có công tắc đích:

Trên Linux hoặc OS X:

pip install -U pip

Trên Windows (điều này khắc phục sự cố ):

python -m pip install -U pip
638 hữu ích 5 bình luận chia sẻ
Lê Trường Nhân
· 15:24 17/03/2015
15:24:41 17/03/2015

Thay vì --targettùy chọn hoặc --install-optionstùy chọn, tôi nhận thấy rằng những điều sau đây hoạt động tốt (từ cuộc thảo luận về một lỗi liên quan đến điều này tại https://github.com/pypa/pip/issues/446 ):

PYTHONUSERBASE=/path/to/install/to pip install --user

(Hoặc đặt PYTHONUSERBASEthư mục trong môi trường của bạn trước khi chạy lệnh, sử dụng export PYTHONUSERBASE=/path/to/install/to)

Này sử dụng rất hữu ích --usertùy chọn nhưng nói với nó để làm cho bin, lib, sharevà các thư mục khác bạn mong muốn dưới một tiền tố tùy chỉnh hơn $HOME/.local.

Sau đó, bạn có thể thêm video này vào bạn PATH, PYTHONPATHvà các biến khác như bạn làm một thư mục cài đặt bình thường.

Lưu ý rằng bạn cũng có thể cần chỉ định các --upgrade--ignore-installedtùy chọn nếu bất kỳ gói nào mà điều này phụ thuộc vào yêu cầu cài đặt các phiên bản mới hơn trong PYTHONUSERBASEthư mục, để ghi đè các phiên bản do hệ thống cung cấp.

Một ví dụ đầy đủ:

PYTHONUSERBASE=/opt/mysterypackage-1.0/python-deps pip install --user --upgrade numpy scipy

..để cài đặt scipynumpyđóng gói các phiên bản gần đây nhất vào một thư mục mà sau đó bạn có thể đưa vào thư mục PYTHONPATHtương tự (sử dụng bash và cho python 2.6 trên CentOS 6 cho ví dụ này):

export PYTHONPATH=/opt/mysterypackage-1.0/python-deps/lib64/python2.6/site-packages:$PYTHONPATH
export PATH=/opt/mysterypackage-1.0/python-deps/bin:$PATH

Sử dụng virtualenv vẫn là một giải pháp tốt hơn và gọn gàng hơn!

83 hữu ích 5 bình luận chia sẻ
Lê Phước Nguyên
· 14:39 13/06/2012
14:39:44 13/06/2012

Cài đặt một gói Python thường chỉ bao gồm một số tệp Python thuần túy. Nếu gói bao gồm dữ liệu, tập lệnh và hoặc tệp thực thi, chúng được cài đặt trong các thư mục khác nhau từ các tệp Python thuần túy.

Giả sử gói của bạn không có dữ liệu / tập lệnh / tệp thực thi và bạn muốn các tệp Python của mình đi vào /python/packages/package_name(chứ không phải một số thư mục con một số cấp dưới đây /python/packagesnhư khi sử dụng --prefix), bạn có thể sử dụng lệnh một lần:

pip install --install-option="--install-purelib=/python/packages" package_name

Nếu bạn muốn tất cả (hoặc hầu hết) các gói của mình ở đó, bạn có thể chỉnh sửa ~/.pip/pip.confđể bao gồm:

[install]
install-option=--install-purelib=/python/packages

Bằng cách đó, bạn không thể quên việc phải chỉ định nó nhiều lần.

Mọi excecutables / data / scripts có trong gói sẽ vẫn chuyển đến vị trí mặc định của chúng trừ khi bạn chỉ định các tùy chọn cài đặt bổ sung ( --prefix/ --install-data/ --install-scripts, v.v., để biết chi tiết, hãy xem các tùy chọn cài đặt tùy chỉnh ).

44 hữu ích 1 bình luận chia sẻ
Vũ Trọng Vinh
· 17:46 31/08/2015
17:46:36 31/08/2015

Để cài đặt thư viện chính xác ở nơi tôi muốn, tôi đã điều hướng đến vị trí tôi muốn thư mục với thiết bị đầu cuối sau đó sử dụng

pip install mylibraryName -t . 

logic mà tôi lấy từ trang này: https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/download

39 hữu ích 2 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ python pip , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm