FAQs and Known Issues¶
Tools and Extensions¶
Q: Does pypet support Python 2.6 and 2.7?
A: Python 2.6 and 2.7 are no longer supported. Still if you need pypet for these versions check out the legacy 0.3.0 package. You can pip install it viapip install pypet==0.3.0.
Q: How can I open and inspect an HDF5 file created by pypet?
Q: Can I use pypet on my computing cluster or can I distribute pypet runs among different servers?
A: Yes, you can, either by combining pypet with SCOOP or with SAGA Python (see also Multiprocessing with a Cluster or a Multi-Server Framework). Examples are provided here: Using SCOOP multiprocessing and Using pypet with SAGA-Python.
Q: I not only need to explore but also tune parameters. Are there any optimization methods available in pypet?
A: Not directly, but you can easily combine pypet with the evolutionary optimization toolkit DEAP. Using DEAP the evolutionary computation framework shows you how.
Performance Issues¶
Q: Exploring many runs (10k+) pypet becomes incredibly slow when it comes to loading and storing data!?
A: HDF5 has a hard time managing nodes with many children. To avoid this simply group your result into buckets using the ‘$set’ wildcard. See also the Optimization Tips.
Q: pypet produces enormously large files of several Gigabytes despite them containing almost no data!?
A: Your HDF5 version is too old (most likely you are using 1.8.5). Please update to 1.8.9 or newer.
Infinite Loops¶
Q: My program does not terminate (i.e. it does not crash but runs forever) when I use pypet in multiprocessing mode in combination with matplotlib and savefig!?
A: Matplotlib uses numpy for linear algebra operations, these operations are often necessary when plotting. So, to solve the issues take a look at the next question.
Q: My program does not terminate (i.e. it does not crash but runs forever) when I use pypet in multiprocessing mode in combination with numpy and linalg.inv or some similar function!?
A: Numpy uses openBLAS (http://www.openblas.net/) to solve linear algebra operations. Yet, there are many issues with openBLAS and Python multiprocessing. To resolve this set the environment variablesOPENBLAS_NUM_THREADS=1andOMP_NUM_THREADS=1.
Crashes and Errors¶
Q: GitPython does not work. If I specify my repository git_repository='./myrepo',
pypet crashes with an AttributeError: 'Repo' object has no attribute 'index'.
What should I do?
A: You probably have an older version of GitPython (likely 0.1.7), install a newer one. Ifpip install GitPythonstill downloads the old version, trypip install --pre GitPythonor if you simply want to upgrade, usepip install --upgrade --pre GitPython.
Q: My program crashes with
TypeError: [..] dtype: float64 its type is <class 'pandas.core.series.Series'>.!?
A: You are using pandas version0.13.x. Unfortunately, pandas performs some unwanted upcasting that cannot be handled by pypet (see https://github.com/pydata/pandas/issues/6526/). This unwanted upcasting has already been removed in the next pandas version. So upgrade to0.14.1or newer.
Q: My program crashes if I try to store a Trajectory containing an ArrayParameter!?
A: Look at the previous answer, you are using pandas0.13.x, please upgrade your pandas package to at least0.14.1.
Q: My program crashes with a ValueError: unknown type: 'object'!?
A: Look at the previous answer, you are using pandas0.13.x, please upgrade your pandas package to at least0.14.1.
Other Problems¶
Q: If I create and environment in an IPython console everything becomes gibberish!?
A: Pypet will redirectstdoutto files. Unfortunately, this messes with the IPython console. To avoid this simply disable logging of this stream setting thelog_stdoutoption toFalse:env = Environment( ..., log_stdout=False, ...).
Q: I have large data sets that are not stored if I use multiprocessing and the lock wrapping!?
A: Probably, you use an older HDF5 version (< 1.8.7) that does not allow simultaneous openings of a single HDF5 file. Either install a newer version or switch to queue wrapping.
Q: I already have a rather evolved simulator can I integrate it with pypet or do I need to start from scratch?
A: No, of course you don’t neet to start from scratch. T here are ways to integrate or wrap pypet around your project. Example Wrapping an Existing Project (Cellular Automata Inside!) shows you how to do that or take a look at section Combining pypet with an Existing Project.