Tôi đang xây dựng một dự án cython độc lập nền tảng nơi tôi muốn chuyển trình biên dịch dựa trên trình biên dịch đang được sử dụng. Tôi có thể đoán trình biên dịch dựa trên nền tảng hoặc giả sử nó là trình biên dịch tương tự được sử dụng cho Python nhưng nó không được đảm bảo để phù hợp. Thông thường tôi đưa vào cmdclass
arg để thiết lập phương thức setuptool và bọc lệnh install hoặc build_ext để kiểm tra trạng thái bên trong. Nhưng trong trường hợp này tôi phải cythonize các mô-đun mở rộng trước khi tôi đạt đến trình bao bọc.Làm thế nào để xác định trình biên dịch trước khi xác định các phần mở rộng của Python?
Có cách nào để xác định trình biên dịch bên trong setup.py trước khi tạo mô-đun mở rộng không?
bạn không thể chuyển trình biên dịch làm đối số thành setup.py: 'python setup.py build --compiler = mingw32'? – denfromufa
bạn cũng có thể sử dụng cmake để biên dịch mã cython theo cách đa nền tảng: https://github.com/thewtex/cython-cmake-example – denfromufa
@denfromufa Bạn có thể chuyển '--compiler = mingw32', nhưng những người nhận khác của kho lưu trữ sẽ không nhất thiết phải biết những gì để thiết lập các đối số trình biên dịch, hoặc nếu đó là một phụ thuộc của repo khác. Và 'pip install' chắc chắn sẽ không tạo ra một đối số như vậy cho setuptools. Tôi có thể đọc các đối số nếu tôi chỉ sử dụng 'python setup.py install' bản thân mình - đó là sự thật. – Pyrce