Tôi đã tìm thấy nhiều nguồn (https://docs.python.org/3/distutils/sourcedist.html#specifying-the-files-to-distribute, http://blog.ionelmc.ro/2014/05/25/python-packaging/, http://blog.ionelmc.ro/2014/06/25/python-packaging-pitfalls/) đề xuất cách phân phối tệp dữ liệu trong gói Python là sử dụng tùy chọn include_package_data
của setuptools và MANIFEST.in
. Các tập tin trong gói của tôi như vậy, như thế nào,Cài đặt tập tin dữ liệu bên trong virtualenv ở đâu?
setup.py
setup( # ... include_package_data = True, # ...
với phần còn lại của tập tin (hy vọng không liên quan) elided.
MANIFEST.IN
graft testdata include ChangeLog include README.rst include COPYING include COPYING.LESSER include tox.ini
Khi tôi chạy setup.py install
hoặc sử dụng pip trong một virtualenv, tôi kết thúc với nguồn Python tập tin bản thân, nhưng không có bất cứ nơi nào testdata/
tôi có thể tìm thấy nó. Tôi nghĩ rằng đây là lỗi trong bao bì của tôi, ngoại trừ khi tôi lấy một gói khác có bố cục tương tự, tôi cũng không thể tìm thấy tệp dữ liệu. Nếu tôi sao chép kho lưu trữ cho gói ví dụ https://github.com/ionelmc/python-nameless và cài đặt nó bằng cách sử dụng setup.py install
, gói cài đặt trong thư mục lib/python3.4/site-packages/nameless-0.1.0-py3.4.egg/nameless/
. Tuy nhiên, tôi không thể tìm thấy bất kỳ tệp dữ liệu hoặc kiểm tra nào ở bất kỳ đâu trong virtualenv. Họ phải kết thúc ở đâu? Công việc này dự định làm như thế nào nhỉ?
Động lực của tôi để đặt câu hỏi này là một cộng tác viên khác trên dự án muốn thử nghiệm, yêu cầu các tệp dữ liệu, để chạy từ cài đặt pip. Đây có phải là cách tiếp cận đúng ngay từ đầu không?
Sử dụng 'pkg_resources' để khám phá tệp dữ liệu của bạn. Xem [answer] (http://stackoverflow.com/a/34788912/3626079) của tôi cho câu hỏi tương tự. – ziky