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 ). 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 !