Tôi đang cố tạo một gói của riêng mình. Gói này rất đơn giản, nó có một mô-đun python và một tập lệnh bash. Tôi wan cả hai người trong số họ sẽ được cài đặt theo /usr/local/bin
để họ có thể được thực hiện trực tiếp.pip không cài đặt entry_points dưới dạng tệp thực thi
Dưới đây là setup.py
tập tin của tôi:
from setuptools import setup
setup(
name='deploy',
.
.
.
install_requires=['pyyaml', 'cot', 'jsonschema'],
entry_points={
'console_scripts': [
'cloud_config = cloud_config:main',
],
},
scripts=['deploy.sh'],
)
Dưới đây là đoạn trích từ đầu ra của pip install ...
:
running install_scripts
copying build/scripts-2.7/deploy.sh -> /usr/local/lib/python2.7.10/bin
changing mode of /usr/local/lib/python2.7.10/bin/deploy.sh to 755
Installing cloud_config script to /usr/local/lib/python2.7.10/bin
Với điều này, tôi không thể để gọi một trong hai python hoặc kịch bản bash trực tiếp.
Bất kỳ ý tưởng nào?
Chỉnh sửa: Tôi đang chạy máy pip
trên máy Ubuntu 16.04.1
. Chỉ cần cố gắng cài đặt cùng một gói trên máy Ubuntu 14.04
và hành vi như mong đợi. cloud_config.py
và deploy.sh
cả hai được cài đặt vào /usr/local/bin
và tôi có thể gọi cả từ bất kỳ đâu trên hệ thống.
Ubuntu vá lỗi nhiều pip; Tôi không ngạc nhiên khi họ thay đổi hành vi ở đây. –
Đó là ngớ ngẩn @MartijnPieters. Làm cách nào để tạo một gói cài đặt đúng trên tất cả các nền tảng? – ronakg
Tôi vừa cố gắng tạo một gói dựa trên 'setup.py' của bạn và triển khai để làm sạch hộp thư Ubuntu 16.04 Vagrant - tất cả đều hoạt động tốt.Nếu bạn cung cấp thêm thông tin, nó có thể giúp tái tạo vấn đề. Có lẽ một cái gì đó với các phiên bản? Bạn sử dụng phiên bản setuptools nào để lắp ráp? Đó là pip và setuptools trên máy mục tiêu? – Timur