#python #linux #docker #package #centos7
Вопрос:
Я запускаю py 2.7.18 в контейнере docker , я использую пакет rh-python27 в CentOS 7.
Один из необходимых gitdb
пакетов моего проекта, когда я запускаю контейнер docker, он жалуется на то, что gitdb не найден. но я упомянул об этом в своем req.txt.
Я устранил неполадки в своем контейнере docker и обнаружил следующее поведение. Может ли кто-нибудь объяснить мне причину такого поведения. почему python
указывает на opt/rh/python27....
вместо /usr/bin/python
?
root@cicd-docker CENTOS7 /usr/bin > pwd
/usr/bin
root@cicd-docker CENTOS7 /usr/bin > ./python
Python 2.7.18 (default, Oct 23 2020, 13:34:23)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.__file__
'/usr/lib64/python2.7/os.pyc'
>>> import gitdb
>>> exit()
root@cicd-docker CENTOS7 /usr/bin > python
Python 2.7.18 (default, Oct 23 2020, 13:34:23)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.__file__
'/opt/rh/python27/root/usr/lib64/python2.7/os.pyc'
>>> import gitdb
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named gitdb
>>> exit()
root@cicd-docker CENTOS7 /usr/bin > sudo python
Python 2.7.5 (default, Nov 16 2020, 22:23:17)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.__file__
'/usr/lib64/python2.7/os.pyc'
>>> import gitdb
>>> exit()
root@cicd-docker CENTOS7 /usr/bin >
Или как правильно установить python2.7.18 в centos docker?
Комментарии:
1. Это внутри контейнера Докера? Какое базовое изображение вы используете? Как выглядит ваш док-файл? Почему вы используете старую (EOL) версию Python?
2. Мой проект должен быть запущен на python 2.7.18. (примечание: В настоящее время мы переносим код на py 3.8.x) Да, он работает внутри контейнера docker, базового образа
centos:7
3. Для вашего второго запуска вы, похоже, запускаете python
/opt/rh/python27/root/usr/bin
. ПопробуйPATH=/usr/bin:$PATH
, а потом бегиpython
4. @Philippe Конечно, я попробую это сделать.
5. @Philippe Вот как выглядит мой путь.
PATH=/opt/rh/rh-git218/root/usr/bin:/opt/rh/python27/root/usr/bin:/usr/bin:/root/bin:/root/perl5/perlbrew/bin:/usr/local/git/bin:/opt/rh/rh-git218/root/usr/bin:/usr/lib64/qt-3.3/bin:/root/perl5/bin:/usr/local/sbin:/usr/sbin:/sbin:/bin:/usr/bin:/usr/local/bin:/var/lib/snapd/snap/bin:/root/bin:/root/bin:/root/bin