2009-12-03 43 views
7

Tôi có tất cả trứng mà dự án của tôi yêu cầu được tải xuống trước trong thư mục và tôi muốn setuptools chỉ chỉ cài đặt các gói từ thư mục đó.'setup.py test' vị trí cài đặt trứng?

Trong setup.cfg của tôi, tôi có:

[easy_install] 
allow_hosts = None 
find_links = ../../setup 

tôi chạy python setup.py develop và nó tìm thấy và cài đặt tất cả các gói một cách chính xác.

Để thử nghiệm, tôi có yêu cầu bổ sung, được chỉ định trong setup.py.

tests_require=["pinocchio==0.2"], 

Trứng này cũng nằm trong thư mục ../../setup.

Tôi chạy python setup.py test và nó thấy sự phụ thuộc và tìm thấy trứng trong ../../setup tốt. Tuy nhiên, trứng được cài đặt vào thư mục hiện tại thay vì thư mục site-packages với phần còn lại của trứng.

Tôi đã thử chỉ định install-dir cả trong setup.cfg và trên dòng lệnh và dường như không hoạt động cho lệnh tests.

Tôi chỉ có thể thêm phụ thuộc vào phần install_requires, nhưng tôi muốn giữ những gì cần thiết để cài đặt và kiểm tra riêng biệt nếu có thể.

Làm cách nào để giữ phụ thuộc trong phần tests_require nhưng đã cài đặt nó vào thư mục site-packages?

Trả lời

3

Chỉ cần nhìn vào mã nguồn (setuptools/command/tests.py), có vẻ như thử nghiệm setup.py không được cài đặt bất cứ thứ gì theo thiết kế (nó đang thử nghiệm, vậy tại sao đặt bất kỳ thứ gì vào trang web- gói?). Nó sử dụng fetch_build_egg (setuptools/dist.py) để lấy trứng, mà thực ra là một easy_install cục bộ. Tôi nghi ngờ bạn không thể thực hiện kiểm tra một cách trivially làm những gì bạn muốn.

Ghi chú/ý tưởng: Trải nghiệm của tôi với trình thiết lập là có lỗi trong đó và hành vi không có giấy tờ. (Một chuyến đi đặc biệt khó chịu mà tôi phát hiện ra là nó sẽ không xâm nhập vào các thư mục có liên kết mềm, khi nào thì các nhánh sẽ).

Tôi muốn đề xuất A) không thực hiện việc này. :), B) cài đặt thủ công tệp bằng cách gọi gói easy_install. hoặc C) nhìn vào hệ thống setuptools và có thể thêm lệnh của riêng bạn. Nó không phải là quá khó hiểu, và biết nó sẽ giúp rất nhiều khi bạn nhận được setuptools tương lai hick-up.

+0

Cảm ơn bạn đã trả lời. Tôi sẽ không bận tâm đến việc thiết lập các công cụ cài đặt, và thực hiện A hoặc B) như bạn đã đề nghị. – amrox

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