2013-01-20 16 views
16

tôi đang cố gắng để tạo ra một gói Python, và tôi có một cấu trúc thư mục như thế này:MANIFEST.in, package_data và data_files làm rõ?

mypkg/ 
├── __init__.py 
├── module1 
│   ├── x.py 
│   ├── y.py 
│   └── z.txt 
└── module2 
    ├── a.py 
    └── b.py 

Sau đó, tôi đã thêm tất cả các file trong MANIFEST.in và khi tôi kiểm tra các kho lưu trữ được tạo ra, nó đã có tất cả các tập tin.

Khi tôi làm python setup.py install trong dist-packages/mypkg/module1. Tôi chỉ thấy các tệp Python chứ không phải là z.txt.

Tôi có z.txt trong cả MANIFEST.insetup.py:

setup (
    packages = [ 
     'mypkg', 
     'mypkg.module1', 
     'mypkg.module2', 
    ], 
    package_data = { 
     'mypkg': ['module1/z.txt'] 
    }, 
    include_package_data = True, 
    ... 
) 

tôi đã cố gắng bổ sung thêm file như data_files cũng nhưng điều đó đã tạo ra một thư mục trong /usr/local. Tôi muốn giữ nó bên trong thư mục mã nguồn vì mã sử dụng dữ liệu đó.

Tôi đã đọc các bài đăng được liệt kê bên dưới nhưng tôi vẫn thấy nhầm lẫn về cách giữ đúng z.txt ở đúng vị trí sau setup.py install.

+0

Cập nhật: Đã khắc phục khi tôi bắt đầu sử dụng setuptools thay vì distutils.core. Tôi nghĩ rằng đó là một số vấn đề với distutils không đồng ý với manifest trong khi setuptools làm việc mà không có bất kỳ thay đổi trong mã. Tôi khuyên bạn nên sử dụng công cụ thiết lập trong tương lai. Sử dụng liên kết [ở đây] [1]. [1]: http://peak.telecommunity.com/DevCenter/setuptools#developer-s-guide – Sourabh

Trả lời

2

Cập nhật: Đã khắc phục sự cố khi tôi bắt đầu sử dụng setuptools thay vì distutils.core. Tôi nghĩ rằng đó là một số vấn đề với distutils không đồng ý với manifest trong khi setuptools làm việc mà không có bất kỳ thay đổi trong mã. Tôi khuyên bạn nên sử dụng setuptools trong tương lai. Sử dụng liên kết here : setup tools- developers guide

11

Hãy thử sử dụng setuptools thay vì distutils.

+0

Có các công cụ thiết lập đã sửa nó. Tôi nhận xét về câu hỏi này vì tôi không thể tự trả lời. – Sourabh