Virtualenv не работает на docker ubuntu18.04: Проблема на Python2 -> Python3? - PullRequest
0 голосов
/ 14 февраля 2020

Моя среда на docker была построена на основе Ubuntu 18.04. ОС находится в переходном периоде смещения Python2 на Python3.

Где мне нужно использовать команду virtualenv. Однако произошла ошибка ниже. Как мне решить?

Команда была вызвана из цепочки инструментов.

Поэтому я хочу решить эту проблему, за исключением изменения команды.

$virtualenv --python=python3 venv
FileNotFoundError: [Errno 2] No such file or directory: '/home/user/hostcwd/venv/bin/python' -> '/home/user/hostcwd/venv/bin/python3'

Added @ 2/14 22: 32

в venv dir, каталоги bin, lib. файл pyvenv.cfg.

ls -la venv/bin/python
lrwxrwxrwx 1 user user 16 Feb 14 09:06 venv/bin/python -> /usr/bin/python3

1 Ответ

0 голосов
/ 14 февраля 2020

Я не уверен, что понимаю вашу полную проблему. Я просто сделал следующее:

$ docker pull ubuntu:bionic
$ docker run -it --rm ubuntu:bionic

Теперь в контейнере

$ apt update
$ apt install python3-pip
$ pip install virtualenv
$ virtualenv -p python3 myenv
$ source myenv/bin/activate
(myenv) $ python

Python 3.6.9 (default, Nov  7 2019, 10:44:02) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Итак, он правильно настроил virutalenv для python. Вы можете перечислить эти команды в Dockerfile , чтобы воспроизвести то, что я сделал довольно легко.

Когда я вызываю ls -l $(which python3) до того, как получаю исходную информацию, я получаю

lrwxrwxrwx 1 root root 9 Oct 25  2018 /usr/bin/python3 -> python3.6

Так что, возможно, ваш virtualenv был установлен с pip (для python2), и это как-то вызывает проблему. Я бы попробовал очистить virtualenv и установить его через python3. Контейнеры должны быть эфемерными и легко перестраиваться. Если есть какие-либо другие конфигурации, которые вы используете для создания своего контейнера, которые могут помочь пролить свет на вашу ситуацию, пожалуйста, поделитесь.

...