Tôi muốn tạo một setup.py sẽ cài đặt các tệp của tôi vào các thư mục tùy chỉnh. Tôi có một tiền tố nhất định, mà tôi muốn để có được những kết quả sau:python setup.py cấu hình để cài đặt các tệp trong thư mục tùy chỉnh
/my/prefix/
bin/
script.sh
libexec/
one.py
two.py
...
lib/pythonX.Y/site-packages/
package/...
dự án ban đầu của tôi là như sau:
/
script.sh
one.py
two.py
...
setup.py
package/...
__init__.py
...
Điều gì sẽ là cách tốt nhất để đạt được điều đó? Tôi muốn để có thể cài đặt nó sau đó với một cái gì đó như:
python setup.py install --prefix=/my/prefix
tôi có thể nhận được "gói" độc đáo được cài đặt trong thư mục đúng như lib/pythonX.Y/site-packages dưới mặc định là --prefix vị trí. Nhưng là có một cách sạch sẽ để có được script.sh vào "bin" và các tập tin python khác vào "libexec"? Cách duy nhất tôi thấy để đạt được điều đó sẽ là sao chép thủ công các tệp đó trong tập lệnh setup.py của tôi. Có thể có một cách sạch hơn và tiêu chuẩn hơn để làm điều đó?
(chỉnh sửa)
Giải pháp
tôi đã kết thúc với setup.py như thế:
setup(name='mylib',
scripts=['script.sh'],
data_files=[('libexec', ['one.py', 'two.py'])]
)
Tất nhiên, bạn có thể duyệt qua tất cả các file python cho libexec, nhưng tôi chỉ có 2-3 tệp python mà tôi cần ở đó.
(edit2)
Ngoài ra, tôi có thể đã setup.cfg như sau:
[install]
prefix=/my/prefix
và thay vì python setup.py install --prefix=/my/prefix
Tôi chỉ có thể làm:
python setup.py install
Có một số tài liệu hữu ích về vấn đề này tại đây: https://docs.python.org/2/install/index.html#alternate-installation-unix-the-prefix-scheme và tại đây https: //docs.python. org/3/distutils/introduction.html – Pierz