espressomd-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ESPResSo-users] Dropping Python 2 support


From: Rudolf Weeber
Subject: [ESPResSo-users] Dropping Python 2 support
Date: Thu, 25 Jul 2019 12:07:21 +0200
User-agent: Mutt/1.9.4 (2018-02-28)

Hi,

As you may now, Python 2 will not be supported past the end of the year.
Also, major Linux distributions will no longer ship it by default in their 
upcoming releases.
Python 3 was released in 2008. Espresso 4.0 can be used with both, Python 2 and 
Python 3. However, as most other Python-based projects, we are dropping support 
for Python 2 for our next release (4.1) and in the development branch.

# Making sure, you are Python 3 ready

## Presence of dependencies to build Espresso

Current Linux distros such as Ubuntu 18.04 LTS already support Python 3. All of 
Espresso's dependencies can be installed from the Distros package manager, 
e.g., python3-numpy.
We have updated the installation instructions for Ubuntu and Mac:
http://espressomd.org/html/doc/installation.html

If you are using Espresso on an HPC cluster, please check if a Python 3 module 
with the necessary packages such as NumPy is available. If such a module is not 
available, please ask the cluster operators to install it.
On many clusters, the command "module avail" provides a list of loadable 
modules.

## Converting simulation scripts
There are some syntax differences between Python 2 and Python 3, but most 
simulation scripts can be converted in less than five minutes.
The most relevant ones for simulation scripts are:
- print is now a function
  ```
    x = 5
    print("x is", 5)
  ```
- Division of two integers returns a float. 5/2 equals 2.5 rather than 2 as in 
Python 2 and C. To get integer division, use 5//2
- range() in Python 2 returns a list of items, whereas it returns an iterator 
in Python 3. For-loops work as before, but if you need the actual list, use
  ```
    x = list(range(5))
  ```

The official documentation is at https://docs.python.org/3/howto/pyporting.html
There are also tools for automatic conversion: 
https://docs.python.org/2/library/2to3.html

Regards, Rudolf
-- 
Dr. Rudolf Weeber
Institute for Computational Physics
Universität Stuttgart
Allmandring 3
70569 Stuttgart
Germany
Phone: +49(0)711/685-67717
Email: address@hidden
http://www.icp.uni-stuttgart.de/~icp/Rudolf_Weeber




reply via email to

[Prev in Thread] Current Thread [Next in Thread]