Tester Python 3.5 beta 16


Python 3.5 est en phase beta, et c’est une release très (mais alors très très très) attendue.

Si vous ne voulez pas attendre et tester le bouzin de suite, il est facile de setup la bestiole sous linux :

  • Installer un compilateur et les headers de Python;
  • Télécharger les sources;
  • Décompresser tout ça;
  • Compiler;
  • Installer.

Un exemple possible :

cd /tmp
sudo apt-get install python-dev gcc # ou yum install python-devel gcc
wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0b3.tgz
tar -xvf Python-3.5.0b3.tgz
cd Python-3.5.0b3
./configure
make
sudo make altinstall

Ne faites surtout PAS sudo make install, qui écraserait votre python principal.

Ensuite on lance :

$ python3.5
$ python3.5
Python 3.5.0b3 (default, Jul  5 2015, 23:52:07) 
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
Traceback (most recent call last):
  File "/home/sam/Scripts/pythonstartup.py", line 119, in 
    store = Store(os.path.join(TEMP_DIR, 'store.%s.db') % python_version)
  File "/home/sam/Scripts/pythonstartup.py", line 93, in __init__
    object.__setattr__(self, 'DICT', shelve.DbfilenameShelf(filename))
  File "/usr/local/lib/python3.5/shelve.py", line 227, in __init__
    Shelf.__init__(self, dbm.open(filename, flag), protocol, writeback)
  File "/usr/local/lib/python3.5/dbm/__init__.py", line 91, in open
    "available".format(result))
dbm.error: db type is dbm.gnu, but the module is not available
>>> import types
>>> print(':)')
:)
>>>

En dehors du vomi d’intro, tout marche chez moi.

16 thoughts on “Tester Python 3.5 beta

  • Sam Post author

    Le type hinting enthousiasme les entreprises, le async intéresse les personnes qui attendaient beaucoup de asyncio et ont trouvé ça trop compliqué (et du coup on fait du nodejs ou go), le % pour les bytes retire une grosse épine du pied des devs réseaux et web, alors que le @ fait la joie de la communauté scientifique. C’est un peu la release coup de coeur pour le coup.

    La 3.4 m’a fait dire que python 3 était enfin près à remplacer la 2 pour les nouveaux projets.

    La 3.5 me fait penser que les gens vont enfin avoir une bonne raison de migrer leurs vieux projets vers la 3.

  • lafontaine

    “type hinting”

    Autant utiliser un langage à typage statique…Ca va être le bordel visuellement.

    “asyncio”

    J’ai pas les mêmes perfs (en moins bien) que lorsque j’utilise du multithread…

    Utiliser asyncio quand 90 % des modules ne sont pas prévus pour, ça gâche un peu.

    Sérieusement, je me retire lentement du monde Python, pour embrasser celui des langages compilés( C, Golang, Rust)…Même si on a pas la même expressivité, ni la même puissance objet, on s’y retrouve pas mal en performance et en facilité de déploiement. Car il faut l’avouer, le déploiement d’appli Python, c’est la misère : une tripotée de dépendances, 12 produits différents pour packager, 12 how to différents pour packager…Moi ça m’a sappé le moral les changements de versions de Python, j’ai des anciens OS avec du python 2, des nouveaux avec du Python 3…ça commence à être le bordel à rationaliser tout cela !

  • gentilnazi

    “La 3.5 me fait penser que les gens vont enfin avoir une bonne raison de migrer leurs vieux projets vers la 3.”

    Ils auront surtout une bonne excuse pour changer de langage.

    Les changements majeurs de langage tuent le langage : Perl, PHP…

  • betepoilue

    C’est cool, espérons que ça va en motiver certains à sortir un meteor version python histoire de s’amuser plus facilement.

  • Sam Post author

    Je dirais même que c’est le seul qui s’en soit sorti. Perl n’est plus beaucoup utilisé, PHP 6 a été supprimé et ils ont sauté cash à PHP7, mais Python 3 gagne encore et toujours en adoption. C’était galère, mais le langage a été modernisé pour survivre à la prochaine décénie.

  • Ryzz

    Moi, ce que je trouve super intéressant, c’est la PEP 448 qui permettra de faire entre autres des trucs comme:

    >>> print(*[1, 2, 3], *[4, 5, 6], 7)

    1 2 3 4 5 6 7

    Je suis toujours frustré de ne pas pouvoir le faire dans certains cas (et c’est bien plus lisible que d’utiliser chainmap).

  • Sam Post author

    Ouai, c’est génial. Depuis le temps que ça me gave de pas pouvoir faire {} + {}, ben on va enfin pouvoir faire {**{}, **{}}.

  • matthieu

    Pour installer proprement Python, il faut les paquets suivants :

    build-essential
    tk8.4-dev
    libsqlite3-dev
    libgdbm-dev
    libreadline6-dev
    liblzma-dev
    libbz2-dev
    libncurses5-dev
    libssl-dev

    Ensuite, ça devrait être beaucoup mieux !

  • Sam Post author

    Ouai ça permet d’utiliser les modules tkinter, sqlite3, gbm, lzma, bz2, readline, ncurse et ssl. Mais si vous voulez juste essayer les nouveautés, c’est pas indispensables.

  • Ludovic Gasc (GMLudo)

    @lafontaine: je suis très très curieux de voir ton benchmark : pas que ce soit impossible, au contraire, par contre, avec une bonne architecture, il y a de quoi faire ;-)

    BTW, essayer d’opposer thread / async et peut être multi process montre que tu n’as pas encore assez joué avec tous ces patterns pour te rendre compte qu’ils ne sont pas antinomiques, mais complémentaires: rien ne t’interdit d’utiliser les 3 dans le même daemon, c’est ce que j’ai fait avec API-Hour http://www.api-hour.io les 3 patterns sont présents, à différents niveaux, histoire d’essayer de tirer le meilleur du CPU et de l’I/O: ce n’est clairement pas une silver bullet, ça peut néanmoins aider quand on l’utilise à bon usage.

    Après, si tu préfères jeter toute ta connaissance Python pour écrire de la business logic (je ne sais pas dans quoi tu travailles, mais moi, c’est pour ça que mes clients me paient, ils s’en foutent de ce que j’utilise en dessous) pour faire du go ou du rust, c’est ton choix, mais tu ne nous fera pas croire que c’est plus facile de tout jeter que passer à Python 3 ;-) à moins bien sûr d’aimer avoir mal, ce qui n’est pas une approche très production-ready de mon point de vue :-)

    Je suis vraiment très curieux de voir des projets que tu as fait en go ou rust, tu aurais une lien pour nous montrer tes oeuvres?

Leave a comment

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.