issues when buidling python3.* on centos 7

joseph pareti joepareti54 at gmail.com
Thu Mar 29 16:10:13 EDT 2018


thank you so much. here's more detail on my troubleshooting.

-----

STARTING POINT:
https://github.com/google/FluidNet


as shown in the readme files, the deployment calls for the following step:

cd FluidNet/manta/build
./manta ../scenes/_trainingData.py --dim 3 --addModelGeometry True
--addSphereGeometry True

The above command should produce the training data, so that torch will work
on it to train the deep network.

However, it fails due to incompatibilities of python 2.7 and 3.x; the
problem is described in:

https://stackoverflow.com/questions/49296737/invalid-syntax-in-python-function

The option of removing python constructs that are only supported in python
3 is not successful because there are more dependencies than just a couple
of statements, namely in the Simplified Wrapper Interface Generator (or
SWIG) which assumes python3.

Therefore, I need a python 3 environment. STEPS:

sudo yum -y install https://centos7.iuscommunity.org/ius-release.rpm
sudo yum shell
  remove python36-3.6.3-7.el7.x86_64
  remove python36-libs-3.6.3-7.el7.x86_64
  install python36u-3.6.4-1.ius.centos7.x86_64
  install python36u-libs-3.6.4-1.ius.centos7.x86_64
  run

[joepareti54 at xxx ~]$ sudo yum install python36u
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * epel: epel.mirror.wearetriple.com
 * ius: mirror.amsiohosting.net
Package python36u-3.6.4-1.ius.centos7.x86_64 already installed and latest
version
Nothing to do
[joepareti54 at xxx ~]$

ASSUMING python36 is now fine, so moving to the next step.

sudo yum -y install python36u-pip
sudo yum install python36u-devel

>From here on, it's manta-application specific:

cmake .. -DGUI='OFF' >> cmake-10.log 2>&1
make -j8 >> make-10.log 2>&1
./manta ../scenes/_trainingData.py --dim 3 --addModelGeometry True
--addSphereGeometry True

Version: mantaflow 64bit fp1 commit
dd3bb0c0a65cc531d3c33487bde5edcb4aa6784f from Mar 29 2018, 15:21:34
Loading script '../scenes/_trainingData.py'
Traceback (most recent call last):
  File "../scenes/_trainingData.py", line 13, in <module>
    from voxel_utils import VoxelUtils
  File "/home/joepareti54/FluidNet/manta/scenes/voxel_utils.py", line 1, in
<module>
    import numpy as np
ModuleNotFoundError: No module named 'numpy'
Script finished.

cmake options are specified in the CMakeCache.txt file, and those can be
edited to select the right python environment as explained in:

https://stackoverflow.com/questions/15291500/i-have-2-versions-of-python-installed-but-cmake-is-using-older-version-how-do

In my case i have following settings:

joepareti54 at xxx build]$ cat CMakeCache.txt | grep -i python

//Compile without python support (limited functionality!)

PYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3.6m

PYTHON_INCLUDE_DIR:PATH=/usr/include/python3.6m

PYTHON_LIBRARY:FILEPATH=/usr/lib64/libpython3.6m.so

FIND_PACKAGE_MESSAGE_DETAILS_PythonLibs:INTERNAL=[/usr/lib64/
libpython3.6m.so][/usr/include/python3.6m][v3.6.4()]


I don't see why manta cannot find numpy, because python does find it:

[joepareti54 at xxx ~]$ python
Python 3.5.2 |Anaconda 4.3.0 (64-bit)| (default, Jul  2 2016, 17:53:06)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>>
[joepareti54 at xxx ~]$

Also note that system wide python 2.7 is still there, and it is required by
centos:

[joepareti54 at xxx ~]$ ls -l /usr/bin/python
lrwxrwxrwx. 1 root root 18 Mar 29 08:00 /usr/bin/python ->
/usr/bin/python2.7
[joepareti54 at xxx ~]$


In addition:
[joepareti54 at xxx build]$ python3.6 -V
Python 3.6.3
[joepareti54 at xxx build]$ which python
/anaconda/envs/py35/bin/python
[joepareti54 at xxx build]$ file /anaconda/envs/py35/bin/python
/anaconda/envs/py35/bin/python: symbolic link to `python3.5'
[joepareti54 at xxx build]$ ls -l /anaconda/envs/py35/bin/python
lrwxrwxrwx. 1 root root 9 Nov 10  2016 /anaconda/envs/py35/bin/python ->
python3.5
[joepareti54 at xxx build]$ ls -l /usr/bin/python
lrwxrwxrwx. 1 root root 18 Mar 29 08:00 /usr/bin/python ->
/usr/bin/python2.7
[joepareti54 at xxx build]$

CONCLUSION

In summary, I don't know whether this configuration is consistent or not
for building the manta application, and whether the python set-up is
consistent.
Also to be noted that the manta application was built by the authors on an
ubuntu platform, so my work is an adaption to centos



2018-03-27 4:07 GMT+02:00 Michael Torrie <torriem at gmail.com>:

> On 03/25/2018 10:15 AM, joseph pareti wrote:
> > The following may give a clue because of inconsistent python versions:
> >
> > [joepareti54 at xxx ~]$ python -V
> > Python 3.5.2 :: Anaconda 4.3.0 (64-bit)
>
> What does 'which python' return?  As Joseph said, hopefully you didn't
> overwrite /usr/bin/python with Python 3.5.  If you did, you're hosed.
> You'll probably have to reinstall.  Python 2.7 is required by just about
> everything on CentOS 7.
>
> If you want to use Python 3.4, install it via Software Collections
> Library.  https://www.softwarecollections.org/en/
>
> To use SCL, you'll need a working yum, though, so after you reinstall
> give it a try.
> --
> https://mail.python.org/mailman/listinfo/python-list
>



More information about the Python-list mailing list