Si je construis un package avec Ceci est évidemment un problème car quiconque utilisant la roue n'aura pas cette configuration. Il ne semble pas faire de différence quel genre de shebang j'utilise. P> python setup.py bdist_wheel code>, le package résultant élargit les Shebangs dans les scripts répertoriés dans setup.py via
Configuration (scripts = ["script / chemin" ]) code> Pour utiliser le chemin absolu sur mon exécutable Python
#! / home / f483 / dev / storj / storjnode / env / bin / python code>. p>.
3 Réponses :
Utilisation du générique Shebang Edit: Ceci est Incorect! P> #! Python code> semble résoudre ce problème. P>
C'est aussi incorrect. Si vous exécutez un fichier avec SHBANG #! Python code> Il va simplement vous dire que c'est un mauvais interprète.
L'étape d'installation en option dans la spécification de roue est censée remplacer #! Python code> avec un chemin valide ( Python.org/Dev/Peps/PEP-0427/#Recommended-Installer-Feature S ). Quand je mets
#! Python code> en haut de mon script, la roue la laisse correctement seule lors de l'exécution de bdist_wheel.
Cela ne devrait pas normalement arriver. Je suggérerais non plus:
Mise à niveau de PIP / Wheel / SeugoTools et vérifiant si c'était peut-être un bug. p> li>
revérifier que le SHBANG actuel est quelque chose de générique dans le script. Par exemple Voici une manière que je ne peux pas reproduire le problème: p> Si vous déballez cette roue, #! / Usr / bin / env python code> p> li>
ol>
s.py code> sera Avoir un invalide / espace réservé à SHBANG
#! Python code>, mais lors de l'installation réelle, il sera remplacé par le chemin système / virtualv. p> p>
Je l'ai finalement réduit et j'ai trouvé le problème. P>
ici les étapes exactes pour reproduire le problème et la solution. P>
Utilisez un shebang valide dans un script ajouté à setup.py. Dans mon cas Créez un virtualenv avec Installez le package avec construire la roue avec Le problème consiste à installer le package sur Virtualenv à l'étape 3. Si cela n'est pas effectué, le shebang n'est pas élargi. P> #! / Usr / bin / env python code> p> li>
virtualenv -p / usr / bin / python2 env code> et activez avec
source env / bin / activer p> p> p> p> p> li>
Python Setup.py Installer code> sur Virtualenv. p> li>
python setup.py bdist_wheel code>. p> li>
ol>
Je vois ce problème, même lorsque vous sautez à l'étape 3.
Est-ce réellement dans la roue? Je veux dire, pouvez-vous voir votre chemin absolu quand vous le décompressez? Je m'attendrais à ce que la substitution du chemin ne se produise que après l'installation et cela dépend simplement de votre configuration Virtualenv.
Oui, c'est pourquoi je reçois une erreur sur une autre machine.
Il semble que ceci est un bug dans la roue, il y a un billet ouvert ici: bitbucket.org/pypa/wheel/issues/135/...