setuptools et pip --user ne s'entendent pas

Le problème exposé dans ce sujet a été résolu.

Bonjour les gens !

Je développe actuellement une série de scripts (en python) pour mes besoins personnels, et j’ai récemment découvert la fonction entry_points de setuptools (résumé ici). Pour ceux qui ne connaissent pas, ça permet, à l’installation d’un package, de créer une série de commandes qui appelent les scripts python (par exemple, que mon_package.le_script.py soit appelable, disons, en tapant le_script dans une console standard).

Ça fonctionne très bien dans un virtualenv (via pip). Ça fonctionne probablement quand on installe le package normalement (via pip), mais comme j’ai pas (encore) envie de cochonner mon linux avec mes bétises, j’ai pas (encore) testé. Par contre, je vais très vite me retrouver dans la situation ou je vais avoir envie de faire pip install sur une machine ou je n’ai pas les droits administrateurs (un supercalculateur, pour ne pas le citer :p ). Normalement, j’aurais fait pip install --user, mais le problème est que, pour une raison qui m’échappe, la fonctionnalité sus-mentionnée ne fonctionne alors pas (les commandes ne sont pas disponibles). La solution est alors de créer un virtualenv.

J’aimerai tout de même savoir si c’est possible avec --user, et si je m’y prend mal. Pour info, voici mon setup.py (rien de très extravagant):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from setuptools import setup
from pip.download import PipSession
from pip.req import parse_requirements

import qcip_scripts

pkgs = []
dependency_links = []
session = PipSession()
for pkg in parse_requirements('requirements.txt', session=session):
    if pkg.req:
        pkgs.append(str(pkg.req))
        if pkg.link.url:
            dependency_links.append(str(pkg.link.url))  # j'utilise un repo privé ;)

setup(
    name='qcip_scripts',
    packages=['qcip_scripts'],
    version=qcip_scripts.__version__,
    author=qcip_scripts.__author__,
    author_email=qcip_scripts.__email__,
    description=qcip_scripts.__doc__,
    classifiers=[
        'Environment :: Scientific',
        'Operating System :: OS Independent',
        'Programming Language :: Python',
        'Programming Language :: Python :: 3'
    ],
    install_requires=pkgs,
    dependency_links=dependency_links,
    python_requires='>=3',
    test_suite='tests',
    entry_points={
        'console_scripts': ['check_chemistry_file = qcip_scripts.check_chemistry_file:main', 'electrical_derivatives = qcip_scripts.electrical_derivatives:main']
    },
)

D’avance merci !

Salut,

Il faudrait regarder dans quels répertoires il installe les console_scripts en cas de --user, mais je pense que ce répertoire est absent de ta variable d’environnement PATH, ce qui expliquerait ton problème.

Edit : Les exécutables sont a priori installés dans $HOME/.local/bin, plus qu’à vérifier si ce répertoire est présent dans le $PATH, et l’ajouter dans le cas échéant.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte