Tôi đã viết một mô-đun mở rộng Python trong C++. Tôi định phân phối mô-đun với các công cụ thiết lập. Sẽ có bản phân phối nhị phân cho Windows 32 và 64 bit (được xây dựng với setup.py bdist_egg
) và phân phối nguồn cho các nền tảng giống UNIX (được xây dựng với setup.py sdist
).Làm cách nào để đưa tệp giấy phép vào tập lệnh setup.py?
Tôi định cấp phép mô-đun theo giấy phép BSD. Trong cây nguồn của tôi, tệp LICENSE.txt nằm trong thư mục trên cùng cùng với setup.py. Tôi nên bao gồm nó trong gói cài đặt như thế nào?
Tôi đã thử các script setup.py sau:
from setuptools import setup, Extension
from glob import glob
setup(
name = 'Foo',
version = '0.1.0',
ext_modules = [Extension('Foo', glob('Source/*.cpp'))],
package_data = {'': ['LICENSE.txt']}
)
Nó không làm việc, các tệp giấy phép không bao gồm trong gói cài đặt. Có thể do tệp setup.py không xác định bất kỳ gói nào, chỉ một mô-đun tiện ích mở rộng.
Làm cách nào để khắc phục sự cố này?
"LICENSE.txt" phải là ["LICENSE.txt"]. Đường dẫn "/" là hệ thống gốc trên UNIX và không tồn tại trên Windows; khi tôi thử nghiệm trên Windows, tôi nhận được thông báo lỗi về một đường dẫn không tồn tại. Thay vào đó, việc sử dụng "" dường như hoạt động; khi tôi kiểm tra LICENSE.txt đã kết thúc trong thư mục "C: \ Python27 \ Lib \ site-packages \ Foo-0.1.0-py2.7-win32.egg", cùng thư mục với Foo.pyd – user763305
@ user763305: I chỉnh sửa câu trả lời của tôi với nhận xét của bạn, xin lỗi. Nếu câu trả lời của tôi giải quyết được vấn đề của bạn, hãy xem xét đánh dấu nó như được chấp nhận bằng cách nhấp vào dấu kiểm ở bên trái câu trả lời của tôi. – orlp