В моем Dockerfile есть python3
, и я получаю:
RUN repo init -u https://android.googlesource.com/platform/manifest
---> Running in f3adc38c2aac
/usr/bin/env: 'python': No such file or directory
Если я устанавливаю python
, я получаю эту ошибку:
Step 6/7 : RUN repo init -u https://android.googlesource.com/platform/manifest
---> Running in 9c03e1b95c0f
repo: warning: Python 2 is no longer supported; Please upgrade to Python 3.6+.
Traceback (most recent call last):
File "/home/project/aosp/.repo/repo/main.py", line 56, in <module>
from subcmds.version import Version
File "/home/project/aosp/.repo/repo/subcmds/__init__.py", line 38, in <module>
['%s' % name])
File "/home/project/aosp/.repo/repo/subcmds/upload.py", line 27, in <module>
from hooks import RepoHook
File "/home/project/aosp/.repo/repo/hooks.py", line 472
file=sys.stderr)
^
SyntaxError: invalid syntax
Репо скачивается так:
RUN mkdir -p /android_tools \
&& curl https://storage.googleapis.com/git-repo-downloads/repo > /android_tools/repo \
&& chmod a+x /android_tools/repo
https://storage.googleapis.com/git-repo-downloads/repo требуется как минимум Python 3.6.
Чтобы использовать python3
с только что загруженным repo
, вам нужно исправить строку shebang:
sed -i '1s/python/python3/' /android_tools/repo
@GuerlandoOCs Потому что в настоящее время нет стандартного способа четко различить Python 2 и 3. См. python.org/dev/peps/pep-0394 esp. python.org/dev/peps/pep-0394/#for-python-runtime-distributors
почему гугл просто не изменил это на
repo
?