Ich versuche ein eigenes Paket zu erstellen. Das Paket ist sehr einfach, es hat ein Python-Modul und ein Bash-Skript. Ich möchte beide unter /usr/local/bin
installieren, damit sie direkt ausgeführt werden können.Pip installiert keine entry_points als ausführbare Dateien
Hier ist meine setup.py
Datei:
from setuptools import setup
setup(
name='deploy',
.
.
.
install_requires=['pyyaml', 'cot', 'jsonschema'],
entry_points={
'console_scripts': [
'cloud_config = cloud_config:main',
],
},
scripts=['deploy.sh'],
)
Hier Auszug aus Ausgabe von 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
Damit bin ich nicht in der Lage, entweder die Python oder die Bash-Skript direkt aufzurufen.
Irgendwelche Ideen?
Edit: Ich betreibe die pip
auf Ubuntu 16.04.1
Maschine. Just versucht, das gleiche Paket auf einem Ubuntu 14.04
-Rechner zu installieren und Verhalten ist wie erwartet. cloud_config.py
und deploy.sh
werden beide auf /usr/local/bin
installiert und ich kann beide von überall auf dem System aufrufen.
Ubuntu schwer Patches pip; Ich bin nicht überrascht, dass sie auch hier ihr Verhalten geändert haben. –
Das ist absurd @MartijnPieters. Wie wird ein Paket erstellt, das ordnungsgemäß auf allen Plattformen installiert wird? – ronakg
Ich habe gerade versucht, ein Paket basierend auf Ihrem 'setup.py' zu erstellen und zu Ubuntu 16.04 Vagrant-Box zu bereinigen - alles funktioniert gut.Wenn Sie weitere Informationen bereitstellen würden, könnte dies helfen, das Problem zu reproduzieren. Vielleicht etwas mit Versionen? Welche Version von setuptools verwenden Sie für die Assembly? Welches sind die Pip- und Setup-Tools auf dem Zielrechner? – Timur