100 pip install
Fix #100 (closed)
- renommer le dossier src en silkaj : ça devient un packet silkaj \o/
- le lien symbolique silkaj à la racine.
- modifier toutes les import dans le code pour ajouter "silkaj." devant
- créer un setup.py / supprimer requirements.txt
- exporter le code de la commande silkaj.py dans un dossier bin à part
On peut installer en faisant un "pip3 install ." dans le dossier racine.
Ou l'installer à distance : pip3 install git+https://https://git.duniter.org/cebash/silkaj.git@100_pip_install
<= URL à corriger après le merge de la branche.
Je vais essayer de pousser sur le pypi de test et je te fais un tuto pour que tu le pousses sur le pypi officiel
Merge request reports
Activity
changed milestone to %0.6.0
assigned to @moul
De ce que je vois, c'est tout bête:
- Créer un compte sur pypi / pypi de test
- Tu génères des paquets wheel (un source, un binaire).
- Tu envois tes paquets sur pypi
Créer un compte sur pypi
https://test.pypi.org/account/register/ https://pypi.org/account/register/
Ca te permettra de gérer tes versions et tes projets (notamment ajouter des collaborateurs qui pourront aussi faire des livraisons).
Générer les paquets
D'abord il faut installer/mettre à jour setuptools et wheels
pip install -U setuptools wheel
Ensuite dans le dossier racine du crée tes paquets:
python3 setup.py sdist bdist_wheel
Ca te fait un dossier dist avec du bordel dedans :
$ ls dist/ silkaj-0.6.0-py3-none-any.whl silkaj-0.6.0.tar.gz
Pousser les paquets sur pypi
Il te faut installer twine d'abord :
pip install twine
Puis pousser les paquets:
twine upload --repository-url https://test.pypi.org/legacy/ dist/*
Tu peux voir ton paquet ici: https://test.pypi.org/project/silkaj/
Je suppose que pour uploader les paquets sur le vrai pypi, tu peux juste faire
twine upload dist/*
Si tu veux installer ton paquet depuis le dépot de test sur un venv tout neuf:
pip install --index-url https://test.pypi.org/simple/ silkaj
Si tu ne veux pas tapper ton password à chaque fois, tu peux utiliser ça: https://github.com/pypa/twine#keyring-support
- Resolved by Sébastien DA ROCHA
- Resolved by Sébastien DA ROCHA
- Installing from pip must be documented.
- Releasing, uploading on pypi must be documented.
-
Document executable path modification:
silkaj
–>bin/silkaj
. -
Remove executable rights on
silkaj/silkaj.py
.
Edited by Moul- Resolved by Sébastien DA ROCHA
- Resolved by Sébastien DA ROCHA
added 2 commits
J'ai un problème avec pipenv. Il ne détecte pas le dossier "silkaj" comme un package python. Quand je lance bin/silkaj dans l'environnement, il m'envoie bouler par
17:05 seba@seba-N750HU: ~/Sources/silkaj$ pipenv run bin/silkaj Traceback (most recent call last): File "bin/silkaj", line 3, in <module> from silkaj.network_tools import check_port, best_node ModuleNotFoundError: No module named 'silkaj'
Du coup, j'ai fait
pipenv install "-e "
ça m'installe le paquet silkaj (en éditable, donc on modifie les sources, elles sont prises en compte à la prochaine exécution) dans l'environnement. Là ça marche.Ça rajoute ça au Pipfile:
diff --git a/Pipfile b/Pipfile index a05dbf6..c91fd92 100644 --- a/Pipfile +++ b/Pipfile @@ -10,6 +10,7 @@ tabulate = "*" scrypt = "*" pyaes = "*" PyNaCl = "*" +"e1839a8" = {path = ".", editable = true} [dev-packages]
C'est très vilain mais apparemment c'est d'usage avec Pipenv : https://github.com/pypa/pipenv/issues/689
Est-ce que ça te vas ?
Ah encore un truc, tu as fait une livraison sur Pypi (le vrai, pas celui de test) de la version 0.6.0.
https://pypi.org/project/silkaj/
Je crois que c'est mort, même si tu l'effaces, il ne voudra pas que tu relivres un fichier avec la même version.
Il y a un souci avec le MarkDown, apparemment c'est un problème connu sur le vieux pypi. La j'ai pas compris pourquoi c'était tout pourri, si ça continue, on pourra peut-être tester de convertir le README en ReST avec pandoc ?
Dernier truc, si tu veux récupérer le projet silkaj sur pypi test, crée un compte et je te donnerais les droits.
Oui, je rencontre le même problème avec
pipenv
.Laissons un peu de temps pour voir si ce contournement nous convient.
Oui, j’ai publié sur Pypi de prod une 0.6.0 et une 0.5.3.
J’ai pu supprimer la v0.6.0 et après cinq minutes c’est la 0.5.3 qui est présente.
C’est des comptes séparés sur pypi de prod et de test ?
added 5 commits
Toggle commit list