2012-05-16 15 views
9

Tôi sử dụng virtualenv để tạo các môi trường bị cô lập cho các dự án Python của tôi. Sau đó, tôi cài đặt các phụ thuộc với pip - Trình quản lý gói Python. Đôi khi tôi quên làm source venv/bin/activate, và sau đó pip tạo ra build/ thư mục bên trong các dự án của tôi. Tại sao pip tạo ra chúng? Tôi có thể xóa chúng, và nếu không, tôi có thể đặt chúng trong tập tin .hgignore của tôi không?Pip tạo dựng/thư mục

Theo như tôi hiểu, pip lưu trữ nguồn của các gói đã tải xuống ở đó dọc theo tệp có tên pip-delete-this-directory.txt. Nhưng khi tôi xóa nó, mọi thứ vẫn hoạt động, vì mã thực đang được đưa vào venv/lib/python2.7/site-packages/. Sau đó, build/ thực sự là gì?

Trả lời

25

Thư mục build là nơi gói được giải nén và xây dựng từ đó. Khi gói được cài đặt thành công, pip sẽ xóa thư mục chưa được giải nén khỏi build, trừ khi bạn đã xóa pip-delete-this-directory.txt. Như được mô tả trong pip-delete-this-directory.txt:

This file is placed here by pip to indicate the source was put 
here by pip. 

Once this package is successfully installed this source code will be 
deleted (unless you remove this file). 

Do đó ít quan trọng hơn đối với môi trường thời gian chạy. Bạn có thể bỏ qua nó một cách an toàn.

Ngoài ra, bạn có thể sử dụng pip install -b customized_build_directory để chỉ định một thư mục như thư mục build cơ sở, ví dụ /tmp

Bên cạnh đó, bạn có thể pip install --no-download package_name để xây dựng lại các gói w/o tải nó, nếu quá trình cài đặt trước của các gói bị thất bại.

+2

cảm ơn vì '--no-download', chính xác những gì tôi cần. –

+1

Vậy tại sao tôi có thể có thư mục xây dựng, ngay cả khi tôi không xóa pip-delete-this-directory.txt? Có một tùy chọn mà tôi có thể bỏ đặt không? – Alex

+0

@Alex Đó là OK để trỏ thư mục đến một nơi tạm thời hơn như '/ tmp', bạn có nghĩa là? – okm

1

tùy chọn -b dường như không hoạt động đối với tôi trong trường hợp khi xây dựng không thành công vì một số lý do mà chỉ Visual Studio có thể sửa ngay bây giờ tôi cần _sodium.c và buồn bã pip xóa nó khi tôi không muốn nó cũng như tôi cần một bản sao của tập tin đó.

+1

Đây thực sự là một chú thích và ** không ** trả lời cho câu hỏi gốc. Để phê bình hoặc yêu cầu làm rõ từ tác giả, để lại nhận xét bên dưới bài đăng của họ - bạn luôn có thể nhận xét về bài đăng của riêng bạn và sau khi bạn có đủ [danh tiếng] (https://stackoverflow.com/help/whats-reputation), bạn sẽ có thể [nhận xét về bất kỳ bài đăng nào] (https://stackoverflow.com/help/privileges/comment). Vui lòng đọc [Tại sao tôi cần 50 danh tiếng để bình luận? Tôi có thể làm gì?] (Https://meta.stackexchange.com/a/214174) – DavidPostill