[ https://issues.apache.org/jira/browse/BEAM-8787?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16979785#comment-16979785 ]
Tomo Suzuki edited comment on BEAM-8787 at 11/22/19 5:00 PM: ------------------------------------------------------------- h1. Problem The problem for my environment was that Python3.6 was missing required module {{distutils.sysconfig}} and the latest python3-disutils does not support Python3.6. h1. Solution Build and install the python version from the source after installing libbz2-dev: {noformat} suztomo@suxtomo24:/tmp$ sudo apt-get install libbz2-dev # This is needed for Python3.6's _bz package suztomo@suxtomo24:/tmp$ git clone --branch v3.6.8 https://github.com/python/cpython.git ... suztomo@suxtomo24:/tmp$ cd cpython suztomo@suxtomo24:/tmp/cpython$ git status Not currently on any branch. nothing to commit, working tree clean suztomo@suxtomo24:/tmp/cpython$ git log -1 commit 3c6b436a57893dd1fae4e072768f41a199076252 (HEAD, tag: v3.6.8) Author: Ned Deily <n...@python.org> Date: Sun Dec 23 16:37:14 2018 -0500 3.6.8final suztomo@suxtomo24:/tmp/cpython$ ./configure --prefix=$HOME/local # pick up your preference ... suztomo@suxtomo24:/tmp/cpython$ make install {noformat} Add the directory to the path with "/bin" appended. In {{~/.bashrc}}: {noformat} export PATH=$HOME/local/bin:$PATH {noformat} Now disutils.sysconfig module is available for Python3.6: {noformat} suztomo@suxtomo24:/tmp/cpython$ python3.6 Python 3.6.8 (tags/v3.6.8:3c6b436a57, Nov 21 2019, 21:11:37) [GCC 8.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from distutils import sysconfig >>> {noformat} Now {{:sdks:python:test-suites:tox:py35:setupVirtualenv}} succeeds {noformat} suztomo@suxtomo24:~/beam4$ ./gradlew -p sdks/python/test-suites/tox/py35 setupVirtualenv ... > Task :sdks:python:test-suites:tox:py35:setupVirtualenv ... BUILD SUCCESSFUL in 5s {noformat} h2. testPy36Gcp failrue The {{:sdks:python:test-suites:tox:py36:testPy36Gcp}} was failing: https://gist.github.com/suztomo/ebfc110652b8ffaf7fede64276d7a053 It seemed that _bz2 library was missing for the Python3.6. Followed [Stackoverflow: No module named '_bz2' in python3|https://stackoverflow.com/questions/20280726/how-to-git-clone-a-specific-tag/24102558]. h2. testPy35Cython failure {noformat} ./gradlew :sdks:python:test-suites:tox:py35:testPy35Cython ... x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fdebug-prefix-map=/build/python3.5-ta1Uke/python3.5-3.5.4=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.5m -I/usr/local/google/home/suztomo/beam4/sdks/python/test-suites/tox/py35/build/srcs/sdks/python/target/.tox-py35-cython/py35-cython/include/python3.5m -c apache_beam/coders/stream.c -o build/temp.linux-x86_64-3.5/apache_beam/coders/stream.o apache_beam/coders/stream.c:17:10: fatal error: Python.h: No such file or directory #include "Python.h" ^~~~~~~~~~ compilation terminated. error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 ... FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':sdks:python:test-suites:tox:py35:testPy35Cython'. {noformat} Tried {{sudo apt-get install python3-dev}} but it didn't work. Installing python3.5 from source code resolved the issue. {noformat} suztomo@suxtomo24:/tmp/cpython$ git checkout v3.5.9 suztomo@suxtomo24:/tmp/cpython$ ./configure --prefix=$HOME/local suztomo@suxtomo24:/tmp/cpython$ make install suztomo@suxtomo24:/tmp/cpython$ which python3.5 /usr/local/google/home/suztomo/local/bin/python3.5 {noformat} was (Author: suztomo): h1. Problem The problem for my environment was that Python3.6 was missing required module {{distutils.sysconfig}} and the latest python3-disutils does not support Python3.6. h1. Solution Build Python3.6 from the source: {noformat} suztomo@suxtomo24:/tmp$ sudo apt-get install libbz2-dev # This is needed for Python3.6's _bz package suztomo@suxtomo24:/tmp$ git clone --branch v3.6.8 https://github.com/python/cpython.git ... suztomo@suxtomo24:/tmp$ cd cpython suztomo@suxtomo24:/tmp/cpython$ git status Not currently on any branch. nothing to commit, working tree clean suztomo@suxtomo24:/tmp/cpython$ git log -1 commit 3c6b436a57893dd1fae4e072768f41a199076252 (HEAD, tag: v3.6.8) Author: Ned Deily <n...@python.org> Date: Sun Dec 23 16:37:14 2018 -0500 3.6.8final suztomo@suxtomo24:/tmp/cpython$ ./configure --prefix=$HOME/local # pick up your preference ... suztomo@suxtomo24:/tmp/cpython$ make install {noformat} Add the directory to the path with "/bin" appended. In {{~/.bashrc}}: {noformat} export PATH=$HOME/local/bin:$PATH {noformat} Now disutils.sysconfig module is available for Python3.6: {noformat} suztomo@suxtomo24:/tmp/cpython$ python3.6 Python 3.6.8 (tags/v3.6.8:3c6b436a57, Nov 21 2019, 21:11:37) [GCC 8.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from distutils import sysconfig >>> {noformat} Now {{:sdks:python:test-suites:tox:py35:setupVirtualenv}} succeeds {noformat} suztomo@suxtomo24:~/beam4$ ./gradlew -p sdks/python/test-suites/tox/py35 setupVirtualenv ... > Task :sdks:python:test-suites:tox:py35:setupVirtualenv ... BUILD SUCCESSFUL in 5s {noformat} h2. testPy36Gcp failrue The {{:sdks:python:test-suites:tox:py36:testPy36Gcp}} was failing: https://gist.github.com/suztomo/ebfc110652b8ffaf7fede64276d7a053 It seemed that _bz2 library was missing for the Python3.6. Followed [Stackoverflow: No module named '_bz2' in python3|https://stackoverflow.com/questions/20280726/how-to-git-clone-a-specific-tag/24102558]. h2. testPy35Cython failure {noformat} ./gradlew :sdks:python:test-suites:tox:py35:testPy35Cython ... x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fdebug-prefix-map=/build/python3.5-ta1Uke/python3.5-3.5.4=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.5m -I/usr/local/google/home/suztomo/beam4/sdks/python/test-suites/tox/py35/build/srcs/sdks/python/target/.tox-py35-cython/py35-cython/include/python3.5m -c apache_beam/coders/stream.c -o build/temp.linux-x86_64-3.5/apache_beam/coders/stream.o apache_beam/coders/stream.c:17:10: fatal error: Python.h: No such file or directory #include "Python.h" ^~~~~~~~~~ compilation terminated. error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 ... FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':sdks:python:test-suites:tox:py35:testPy35Cython'. {noformat} Tried {{sudo apt-get install python3-dev}} but it didn't work. Installing python3.5 from source code resolved the issue. {noformat} suztomo@suxtomo24:/tmp/cpython$ git checkout v3.5.9 suztomo@suxtomo24:/tmp/cpython$ ./configure --prefix=$HOME/local suztomo@suxtomo24:/tmp/cpython$ make install suztomo@suxtomo24:/tmp/cpython$ which python3.5 /usr/local/google/home/suztomo/local/bin/python3.5 {noformat} > Python setup issues > ------------------- > > Key: BEAM-8787 > URL: https://issues.apache.org/jira/browse/BEAM-8787 > Project: Beam > Issue Type: Bug > Components: build-system > Affects Versions: 2.16.0 > Environment: debian x86 (gLinux) > Reporter: Elliotte Rusty Harold > Priority: Major > > This could be an issue with incomplete or inaccurate contributing docs. tldr; > `./gradlew check` fails on Debian after initial checkout. > The docs say that one should first run: > sudo apt-get install \ > openjdk-8-jdk \ > python-setuptools \ > python-pip \ > virtualenv > but even after running this pieces are missing. I'm still debugging exactly > what's missing but the symptoms look like this: > > Task :sdks:python:test-suites:tox:py35:setupVirtualenv FAILED > The path python3.5 (from --python=python3.5) does not exist > > Task :sdks:python:test-suites:tox:py36:setupVirtualenv FAILED > [ant:fmpp] Traceback (most recent call last): > [ant:fmpp] File "/usr/lib/python3/dist-packages/virtualenv.py", line 25, in > <module> > [ant:fmpp] import distutils.sysconfig > [ant:fmpp] ModuleNotFoundError: No module named 'distutils.sysconfig' > ... > FAILURE: Build completed with 2 failures. > 1: Task failed with an exception. > ----------- > * What went wrong: > Execution failed for task ':sdks:python:test-suites:tox:py35:setupVirtualenv'. > > Process 'command 'virtualenv'' finished with non-zero exit value 3 > Indeed there is no Python 3.5 on this system: > gnome-user-share python2.6 > gnome-vfs-2.0 python2.7 > gnupg python3 > gnupg2 python3.6 > gold-ld python3.7 > goobuntu-config-tools python3.8 > But nowhere in the setup docs do we say that Python 3.5 is required to build > this. -- This message was sent by Atlassian Jira (v8.3.4#803005)