This section explains how to resolve the most common issues encountered with PyDPF-Post. It also includes suggestions for improving scripts.

Known issues list#

Please refer to the Known issues page for a list of known issues for each version of DPF.


When pip installing older versions of the PyDPF libraries, an error might occur stating:

'python_requires' must be a string containing valid version specifiers; Invalid specifier: '>=3.7.*'

In this case, modify your Python environment to use a version of the setuptools library strictly older than 67.0.0 using the command below:

pip uninstall -y packaging; pip uninstall -y setuptools; pip install "setuptools<67.0.0"


Depending on your scripting environment, auto-completion might not work correctly when using the load_simulation() method. This method is intended as a helper which can detect automatically the physics type and analysis type. To get auto-completion to work in all circumstances, instantiate the right Simulation sub-class directly using its constructor:

from ansys.dpf import post

static_mechanical_simulation = post.StaticMechanicalSimulation('file.rst')
# or
transient_mechanical_simulation = post.TransientMechanicalSimulation('file.rst')
# or
modal_mechanical_simulation = post.ModalMechanicalSimulation('file.rst')
# or
harmonic_mechanical_simulation = post.HarmonicMechanicalSimulation('file.rst')

Invalid UTF-8 error#

Assume that you are using this code to load a simulation result:

from ansys.dpf import post
simulation = post.load_simulation('file.rst')

This error might be raised:

[libprotobuf ERROR C:\.conan\897de8\1\protobuf\src\google\protobuf\]
String field 'ansys.api.dpf.result_info.v0.ResultInfoResponse.user_name' contains invalid UTF-8
data when serializing a protocol buffer. Use the 'bytes' type if you intend to send raw bytes.

This error prevents the simulation from being accessed. To avoid this error, ensure that you are using a PyDPF-Post version later than 0.2.1 and a PyDPF-Core version later than 0.3.2. In this case, a warning might still be raised, but it should not prevent the simulation from being accessed.

For the result file to be read, you must set the physics_type and analysis type arguments for the load_solution() method:

from ansys.dpf import post
solution = post.load_solution('file.rst', physics_type='mechanical', analysis_type='transient')