Installation de silkaj sous Debian

Bonjour,

Je cherche a installer Silkaj sous Debian et ça coince.

Voici l’erreur sur laquelle je n’arrive pas a avancer :

[2617] Error loading Python lib '/tmp/_MEI2SRDsv/libpython3.6m.so.1.0': dlopen: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by /tmp/_MEI2SRDsv/libpython3.6m.so.1.0)

Any clue?

Merci

EDIT :
Debian 8 64bit
Installation via release.

À prioris, ma release ne fonctionne que sous Fedora. Là où elle a été buildée.

Je t’invite à l’installer avec Pipenv en allant sur la branche dev. C’est pas encore dans master.

Dis-moi si tu rencontres des difficultés ou si tu as besoin d’aide.
Je pense que l’installation via pipenv est très facilité par rapport à la solution précédente.
J’ai vraiment besoin que quelqu’un passe cette étape pour l’avenir de silkaj.

Voilà ce que j’ai pour l’install de pipenv

# pipenv install
Traceback (most recent call last):
  File "/usr/local/bin/pipenv", line 11, in <module>
    load_entry_point('pipenv==2018.5.18', 'console_scripts', 'pipenv')()
  File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/pipenv/cli.py", line 402, in install
    selective_upgrade=selective_upgrade,
  File "/usr/local/lib/python2.7/dist-packages/pipenv/core.py", line 1781, in do_install
    skip_requirements=skip_requirements,
  File "/usr/local/lib/python2.7/dist-packages/pipenv/core.py", line 620, in ensure_project
    three=three, python=python, site_packages=site_packages
  File "/usr/local/lib/python2.7/dist-packages/pipenv/core.py", line 553, in ensure_virtualenv
    if not project.virtualenv_exists:
  File "/usr/local/lib/python2.7/dist-packages/pipenv/project.py", line 225, in virtualenv_exists
    if self.pipfile_exists and os.path.exists(self.virtualenv_location):
  File "/usr/local/lib/python2.7/dist-packages/pipenv/project.py", line 315, in virtualenv_location
    loc = self._get_virtualenv_location(self.virtualenv_name)
  File "/usr/local/lib/python2.7/dist-packages/pipenv/project.py", line 297, in virtualenv_name
    sanitized, encoded_hash = self._get_virtualenv_hash(self.name)
  File "/usr/local/lib/python2.7/dist-packages/pipenv/project.py", line 271, in _get_virtualenv_hash
    clean_name, encoded_hash = get_name(name, self.pipfile_location)
  File "/usr/local/lib/python2.7/dist-packages/pipenv/project.py", line 267, in get_name
    hash = hashlib.sha256(location.encode()).digest()[:6]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 14: ordinal not in range(128)
/usr/local/lib/python2.7/dist-packages/pipenv/_compat.py:86: ResourceWarning: Implicitly cleaning up <TemporaryDirectory '/tmp/pipenv-OEuI3b-requirements'>
  warnings.warn(warn_message, ResourceWarning)

Ok, c’est pas gagné.
pipenv est packagé sous Fedora.
Malheureusement, il faut attendre sous Debian et l’installer à la main.

Je suppose que tu as installé avec pip sous Python2.

Pipenv semble être mal installé. Pourtant il est compatible avec Python 2.7 selon leur site.

Essaye avec Python 3 pour voir :

sudo apt-get install python3-pip

@Moul on peut reprendre du début ? :slight_smile:

Donc les préco sont bien :
Python 3

J’ai fait un autoremove et un remove python.

Je reprends depuis le début. :wink:

Salut @Looarn,
je pense que ce post peut t’aider. C’est une install sous raspbian, qui n’est qu’un clone de Debian de toute façon. J’ai un peu galéré aussi, j’espère que ça te sera utile.

4 Likes

Super, ça tourne.

Un grand merci a vous deux pour le support.

1 Like

J’ai repris la tentative suite à ce post,

Je n’ai pas voulu installer python 3.6 pour ne pas mettre la daouat dans mes dépendance python et bloquer ainsi les mises à jour…

Donc je suis sur python 2.7.12, j’ai installé les dépendances “nécessaires” demandé par les différentes étapes d’installation et ainsi pouvoir installer les paquets nécessaires avec pip:

  • pip install --upgrade pip
  • pip install pynacl
  • pip install pipenv

pip en version 10.0.1

J’ai essayé en master et dev branch, pour la dev:

(silkaj-wD1BteaK) root@970g:/tmp/test/silkaj$./silkaj
Traceback (most recent call last):
File “./silkaj”, line 6, in
from commandlines import Command
ImportError: No module named ‘commandlines’

Un petit help sur l’origine de l’erreur possible ? à la clé uns installation fonctionnelle sans python 3.6 :yum:

Malheureusement silkaj a vraisemblablement des dépendances qui nécessitent du python 3, et même avec une 3.4 ça ne passait pas chez moi. Ce n’est que lorsque je suis passé en 3.6 que ça a fini par fonctionner… Rien ne t’empêche de créer un utilisateur spécial pour silkaj et installer python 3.6 uniquement pour lui sans flinguer tout ton système. :slight_smile:

2 Likes

Ah ok, merci @jytou
je pensais que la librairie était commune au système donc à tous les utilisateurs.

Donc je peux faire cohabiter 2 versions de python pour 2 utilisateurs différents sur le même système ?

Désolé, mais je suis très surpris :blush:

Tu peux très bien avoir python 2 et 3 tous les deux installés sur le système (c’est d’ailleurs souvent le cas). Du coup, tu fais du python 3 quand tu lances ton programme python avec python3 et en python 2 en lançant avec python tout court. Pareil, pip3 va installer des dépendances utilisables sous python3 tandis que pip va généralement installer pour python 2 (bien sûr ça dépend de ce qui est installé sur ton système et comment c’est installé).

Mais sinon tu peux avoir un python 3 installé dans un répertoire à l’intérieur du home de ton utilisateur, et modifier les chemins pour utiliser ce python-là plutôt que celui de ton système. Et la plupart des dépendances sont installées uniquement pour l’utilisateur courant de toute façon. Mais c’est vrai que ce n’est pas forcément la manière la plus standard de faire les choses. :slight_smile:

1 Like

Ok merci à toi :wink:

Petit retour sous ubuntu 16.04

sudo apt install python3-pip
sudo python3 -m pip install --upgrade pip
sudo python3 -m pip install pynacl
sudo python3 -m pip install pipenv

python v3.5.1.3
pip 10.0.1

ça fonctionne super ! premières requêtes avec silkaj
Merci @jytou @Moul

2 Likes

Bonnes découvertes !

Je vous conseille d’utiliser Pyenv pour installer plusieurs versions de Python facilement et sans risque !

https://amaral.northwestern.edu/resources/guides/pyenv-tutorial

Ne vous occupez pas du chapitre du virtualenv, puisque que Pypenv s’en occupe pour vous !

Résumons, pour être à l’aise avec Python sur votre système, il vous faut installer trois outils :

  • Pyenv : gère les versions de Python installées sur votre système (comme nvm pour nodejs).

  • Pip : gestionnaire de package Python, et de leurs dépendances (comme yarn ou npm pour nodejs).

  • Pipenv : gestionnaire de package amélioré, avec gestion d’environnement virtuel.

Merci à @moul d’être le premier à tester pipenv sur Silkaj ! Je vais l’essayer sur l’api duniterpy asap…

4 Likes

Effectivement j’ai enfin pu faire marcher silkaj sur mon ubuntu grace à cette solution! Je me suis cassé les dents auparavant avec des dépendances pythons qui foiraient …

Quelqu’un pour faire un récap des actions à affectuer sur debian pour faire fonctionner silkaj ? (et idéalement une merge-request pour ajouter ça directement au fichier de doc https://git.duniter.org/clients/python/silkaj/blob/master/doc/install_on_the_system.md )

et peut-être mettre à jour le README.md pour clarifier la partie install.

Je me propose pour tester le résultat sous windows 10 et ElementaryOS (base ubuntu) :wink:

Il faut ajouter l’installation de Python 3.6.0 avec Pyenv dans la doc d’installation par Pipenv.

Installation de Python 3.6.0 avec Pyenv sur la branche master :

A ajouter à la branche de dev, dans la doc de Pipenv :

Ainsi, Pipenv utilisera la version de Python installée par Pyenv.

Merge request faîte, mais procédure non testée !

Salut !

Avec les deux procdures, j’ai rencontré une erreur :

zipimport.ZipImportError: can't decompress data; zlib not available

Résolu en faisant :

sudo aptitude install zlibg1-dev
./configure --with-zlib=/usr/include
sudo make install 

j’ai continué avec la procédure de Jytou, c’est installé. Je vais m’essayer à spammer GTest.
Maintenant avec ces essais c’est le bordel sur mon système :wink:

source : https://askubuntu.com/questions/173829/cant-decompress-data-zlib-not-available