You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Joe McDonnell (Jira)" <ji...@apache.org> on 2023/09/08 16:31:00 UTC
[jira] [Created] (IMPALA-12434) Isolate shell/pkg_resources.py to keep it off of the PYTHONPATH
Joe McDonnell created IMPALA-12434:
--------------------------------------
Summary: Isolate shell/pkg_resources.py to keep it off of the PYTHONPATH
Key: IMPALA-12434
URL: https://issues.apache.org/jira/browse/IMPALA-12434
Project: IMPALA
Issue Type: Task
Components: Infrastructure
Affects Versions: Impala 4.3.0
Reporter: Joe McDonnell
In some internal builds on Redhat 8, the pip install of impala-shell into the Python 3 virtualenv can fail with this error:
{noformat}
Exception:
Traceback (most recent call last):
File "impala/shell/build/py3_venv/lib64/python3.6/site-packages/pip/basecommand.py", line 215, in main
status = self.run(options, args)
File "impala/shell/build/py3_venv/lib64/python3.6/site-packages/pip/commands/install.py", line 357, in run
wb.build(autobuilding=True)
File "impala/shell/build/py3_venv/lib64/python3.6/site-packages/pip/wheel.py", line 753, in build
self.requirement_set.prepare_files(self.finder)
File "impala/shell/build/py3_venv/lib64/python3.6/site-packages/pip/req/req_set.py", line 381, in prepare_files
ignore_dependencies=self.ignore_dependencies))
File "impala/shell/build/py3_venv/lib64/python3.6/site-packages/pip/req/req_set.py", line 637, in _prepare_file
abstract_dist.prep_for_dist()
File "impala/shell/build/py3_venv/lib64/python3.6/site-packages/pip/req/req_set.py", line 130, in prep_for_dist
self.req_to_install.run_egg_info()
File "impala/shell/build/py3_venv/lib64/python3.6/site-packages/pip/req/req_install.py", line 417, in run_egg_info
self.setup_py, self.link,
File "impala/shell/build/py3_venv/lib64/python3.6/site-packages/pip/req/req_install.py", line 387, in setup_py
import setuptools # noqa
File "impala/shell/build/py3_venv/lib64/python3.6/site-packages/setuptools/__init__.py", line 12, in <module>
import setuptools.version
File "impala/shell/build/py3_venv/lib64/python3.6/site-packages/setuptools/version.py", line 1, in <module>
import pkg_resources
File "impala/shell/pkg_resources.py", line 50
def _bypass_ensure_directory(name, mode=0777):
^
SyntaxError: invalid token
make[3]: *** [shell/CMakeFiles/shell_python3_install.dir/build.make:70: shell/CMakeFiles/shell_python3_install] Error 2
{noformat}
What seems to happen is shell/pkg_resources.py is on the PYTHONPATH and our pkg_resources.py doesn't work with Python 3. If I move pkg_resources.py to a different directory (like a legacy subdirectory) or if I add a WORKING_DIRECTORY for the CMake command, it works fine. In general, keeping pkg_resources.py away from our PYTHONPATH (which includes $IMPALA_HOME/shell) seems like a good idea.
This problem doesn't reproduce on the regular upstream Impala build or on my local Ubuntu 20 workstation build, but it reliably reproduces on an internal build.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)