2015-01-27 23 views
5

Tôi muốn xuất bản tài liệu của dự án https://bitbucket.org/oaltun/opn trong readthedocs.org.python readthedocs cách đáp ứng yêu cầu sip (hoặc pyqt)

Bản dựng không thành công. Có các lỗi khác nhau được hiển thị trong nhật ký https://readthedocs.org/builds/opn/2247789/, nhưng trước tiên là "không có mô-đun có tên sip".

ngụm là cần thiết bởi pyqt, dự án cần thiết.

Thông thường trong trường hợp này, theo như tôi hiểu, bạn sẽ thêm gói bị thiếu vào setup.py của mình và kiểm tra tùy chọn readthedocs.org để tạo virtualenv. Tôi kiểm tra hộp để tạo virtualenv. Nhưng tôi không thể thêm sip hoặc pyqt vào setup.py.

Sự cố là pyqt & sip không sử dụng công cụ thiết lập, do đó không thể cài đặt bằng pip. Vì vậy, bạn không thể thêm chúng vào setup.py (Điều này không thành công ngay cả trong máy cục bộ của tôi).

Trong môi trường địa phương của tôi, tôi cài đặt pyqt với (ana) conda. Nhưng tôi nghĩ readthedocs.org sử dụng pip để gọi các phụ thuộc.

Vì vậy, làm cách nào để có virtualenv của tôi bao gồm ngụm?

+0

Mất một chút googling, nhưng đọc [this] (http://docs.readthedocs.org/en/latest/faq.html#i-get-import-errors-on-libraries-that-depend-on -c-modules). Bạn cũng có thể quan tâm đến mã được cấp phép LGPL mà tôi đã tìm thấy (Tuyên bố từ chối trách nhiệm: Tôi không liên kết với dự án): https://github.com/pyudev/pyudev/blob/develop/doc/conf.py#L37 –

+0

@ three_pineapples: cảm ơn vì điều đó. – user9144

+0

Bạn cũng có thể trỏ readthedocs hướng tới một requirements.txt thay thế trong cài đặt của chúng. – Trilarion

Trả lời

1

Bí quyết là để chế nhạo các giao diện:

import mock 
MOCK_MODULES = ['sip', 'PyQt4', 'PyQt4.QtGui'] 
sys.modules.update((mod_name, mock.MagicMock()) for mod_name in MOCK_MODULES) 

Lưu ý rằng bạn cũng phải thử gói root 'PyQt4' hoặc sẽ nhận được một ImportError.

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