Команда mkvirtualenv не найдена на Ubuntu 18.04 [duplicate]

malikarumi@Tetouan2:~$ pip install virtualenv Collecting virtualenv Downloading virtualenv-12.0.7-py2.py3-none-any.whl (1.8MB) 100% |################################| 1.8MB 330kB/s malikarumi@Tetouan2:~$ pip freeze (a lot of stuff, but not virtualenv) malikarumi@Tetouan2:~$ virtualenv testvenv1 The program 'virtualenv' is currently not installed. You can install it by typing: sudo apt-get install python-virtualenv

Что здесь происходит? это python-virtualenv == pyvenv? Разве это еще не сломано? Ли по-прежнему работает virtualenv с python? если venv (слишком много вариаций имен !!!) является частью стандартной библиотеки https://docs.python.org/3/library/venv.html, почему мне сказали установить его?

И когда я попытался установить его, я получил:

malikarumi@Tetouan2:~$ sudo apt-get install python-virtualenv Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: python-colorama python-distlib python-html5lib python-pip python-setuptools

В какой момент я прервался, поскольку установка python3-pip перед тем, как это дало мне

Setting up python3-setuptools (3.3-1ubuntu1) ... Setting up python3-pip (1.5.4-1) ...

И я не был уверен, что дополнительные пакеты будут перезаписывать их или перейти на python 2.7.

Я читал, что python 3 должен быть по умолчанию в будущем. Поскольку существуют как 2.7, так и 3.4, и имеют отдельные команды, как я могу не только убедиться, что Python 3 является моим значением по умолчанию, но что все, что я устанавливаю, идет туда и используется им вместо 2.7?

BTW, я попробовал sudo apt-get python3-virtualenv и получил: E: Не удалось найти пакет python3-virtualenv

12
задан 1 April 2015 в 14:29

4 ответа

В репозиториях Ubuntu нет пакета python3-virtualenv. В репозиториях Ubuntu имеется пакет python-virtualenv, но этот пакет не будет работать для установки пакетов Python 3.x в виртуальной среде Python. python-virtualenv работает только для установки пакетов Python 2.x в виртуальной среде Python.

Способ установки пакетов Python 3.x в виртуальной среде Python заключается в создании виртуальной среды Python с использованием создателя виртуальной среды Python 3 (python3-virtualenv). python3-virtualenv находится в репозиториях Ubuntu по умолчанию в Ubuntu 14.10 и более поздних версиях.

Установить пакеты Python 3.x в виртуальной среде Python в Ubuntu 14.04

sudo apt-get install virtualenvwrapper gedit .bashrc

Добавить следующую строку в конец .bashrc. [ ! d5] source /usr/share/virtualenvwrapper/virtualenvwrapper.sh

Сохраните изменения в .bashrc и закройте gedit. Источник .bashrc, чтобы изменения вступили в силу.

cd source .bashrc

Создайте виртуальную среду Python для python3. Пакет python3 можно установить только в этой виртуальной среде Python. Если вы также хотите установить пакеты Python 2.x, вам нужно создать еще одну виртуальную среду Python.

mkvirtualenv py3 -p /usr/bin/python3

Новая виртуальная среда Python для python3 будет создана в каталоге ~/.virtualenvs/py3.

Установите пакет.

cd ~/.virtualenvs/py3 source bin/activate pip3 install package-name

Установите пакеты Python 3.x в виртуальную среду Python в 16.04 и позже

Установите создателя виртуальной среды Python 3 sudo apt install virtualenv python3-virtualenv Создайте виртуальную среду Python для python3. Пакет python3 можно установить только в этой виртуальной среде Python. Если вы также хотите установить пакеты Python 2.x, вам необходимо создать другую виртуальную среду Python. virtualenv -p python3 env source ./env/bin/activate Новая виртуальная среда Python для python3 будет создана в каталоге env, который находится в текущем каталоге. Установите пакеты Python. cd /path/to/env/ # env is the python3 virtual environment's directory source bin/activate pip3 install first-package-name next-package-name last-package-name

Это новая виртуальная среда python3 с последней версией pip3, поэтому установка пакетов Python в ней отлично подойдет.

3
ответ дан 17 July 2018 в 14:35

Ну, это усложняется. Ниже показано против Ubuntu Xenial (который является основным выпуском для Linux Mint, который я использую). Давайте рассмотрим это:

pyvenv

Он относится к скрипту оболочки пакета python 3.3+ stdlib. Но это было устаревшим с Python 3.6.

Это также stdlib package , который является виртуальным коммутатором среды.

venv

Это пакет stdlib Python 3.3+, целью которого было улучшить и заменить пакет PyPi virtualenv (см. PEP 405). Но, похоже, он еще не существует (по крайней мере, не как полнофункциональный).

python-virtualenv и virtualenv

$ apt-cache show virtualenv | grep Depends Depends: python3, python3-virtualenv

Как вы можете видеть, он работает на Python 3. python-virtualenv пакет предназначен для использования как python2 -m virtualenv py2. Давайте посмотрим, как virtualenv работает над новым Ubuntu Xenial (docker run --rm -it ubuntu:xenial):

$ virtualenv bash: virtualenv: command not found $ apt-get update ... $ apt-get install --yes --no-install-recommends virtualenv Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: ca-certificates dh-python libexpat1 libmpdec2 libpython3-stdlib libpython3.5-minimal libpython3.5-stdlib libsqlite3-0 libssl1.0.0 mime-support openssl python-pip-whl python3 python3-minimal python3-pkg-resources python3-virtualenv python3.5 python3.5-minimal Suggested packages: libdpkg-perl python3-doc python3-tk python3-venv python3-setuptools python3.5-venv python3.5-doc binutils binfmt-support Recommended packages: file The following NEW packages will be installed: ca-certificates dh-python libexpat1 libmpdec2 libpython3-stdlib libpython3.5-minimal libpython3.5-stdlib libsqlite3-0 libssl1.0.0 mime-support openssl python-pip-whl python3 python3-minimal python3-pkg-resources python3-virtualenv python3.5 python3.5-minimal virtualenv ... $ virtualenv test The executable python2 (from --python=python2) does not exist $ virtualenv -p python3 py3 Already using interpreter /usr/bin/python3 Using base prefix '/usr' New python executable in /py3/bin/python3 Also creating executable in /py3/bin/python Installing setuptools, pkg_resources, pip, wheel...done. $ . py3/bin/activate (py3) $ python --version Python 3.5.2 (py3) $ deactivate $ apt-get install --yes --no-install-recommends python Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: libffi6 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python-minimal python2.7 python2.7-minimal Suggested packages: python-doc python-tk python2.7-doc binutils binfmt-support The following NEW packages will be installed: libffi6 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-minimal python2.7 python2.7-minimal ... $ virtualenv py2 Running virtualenv with interpreter /usr/bin/python2 New python executable in /py2/bin/python2 Also creating executable in /py2/bin/python Installing setuptools, pkg_resources, pip, wheel...done. $ . py2/bin/activate (py2) $ python --version Python 2.7.12

Как вы можете видеть, хотя пакет virtualenv использует python3-virtualenv, его по умолчанию является создание Python 2 окружающая среда.

0
ответ дан 17 July 2018 в 14:35

В репозиториях Ubuntu нет пакета python3-virtualenv. В репозиториях Ubuntu имеется пакет python-virtualenv, но этот пакет не будет работать для установки пакетов Python 3.x в виртуальной среде Python. python-virtualenv работает только для установки пакетов Python 2.x в виртуальной среде Python.

Способ установки пакетов Python 3.x в виртуальной среде Python заключается в создании виртуальной среды Python с использованием создателя виртуальной среды Python 3 (python3-virtualenv). python3-virtualenv находится в репозиториях Ubuntu по умолчанию в Ubuntu 14.10 и более поздних версиях.

Установить пакеты Python 3.x в виртуальной среде Python в Ubuntu 14.04

sudo apt-get install virtualenvwrapper gedit .bashrc

Добавить следующую строку в конец .bashrc. [ ! d5] source /usr/share/virtualenvwrapper/virtualenvwrapper.sh

Сохраните изменения в .bashrc и закройте gedit. Источник .bashrc, чтобы изменения вступили в силу.

cd source .bashrc

Создайте виртуальную среду Python для python3. Пакет python3 можно установить только в этой виртуальной среде Python. Если вы также хотите установить пакеты Python 2.x, вам нужно создать еще одну виртуальную среду Python.

mkvirtualenv py3 -p /usr/bin/python3

Новая виртуальная среда Python для python3 будет создана в каталоге ~/.virtualenvs/py3.

Установите пакет.

cd ~/.virtualenvs/py3 source bin/activate pip3 install package-name

Установите пакеты Python 3.x в виртуальную среду Python в 16.04 и позже

Установите создателя виртуальной среды Python 3 sudo apt install virtualenv python3-virtualenv Создайте виртуальную среду Python для python3. Пакет python3 можно установить только в этой виртуальной среде Python. Если вы также хотите установить пакеты Python 2.x, вам необходимо создать другую виртуальную среду Python. virtualenv -p python3 env source ./env/bin/activate Новая виртуальная среда Python для python3 будет создана в каталоге env, который находится в текущем каталоге. Установите пакеты Python. cd /path/to/env/ # env is the python3 virtual environment's directory source bin/activate pip3 install first-package-name next-package-name last-package-name

Это новая виртуальная среда python3 с последней версией pip3, поэтому установка пакетов Python в ней отлично подойдет.

3
ответ дан 20 July 2018 в 14:39
  • 1
    Это не кажется правильным. Vivid (15.04) имеет доступные пакеты python3-virtualenv и python3-venv. Я предполагаю, что python3-venv является правильным пакетом, и в этом случае я не знаю, какой целью служит python3-virtualenv. – knite 26 May 2015 в 10:17
  • 2
    Неправильно. Вы можете использовать virtualenv (исполняемый файл) для создания среды с произвольным интерпретатором, включая PyPy, просто отлично. [F2]. – saaj 18 February 2017 в 17:22

Ну, это усложняется. Ниже показано против Ubuntu Xenial (который является основным выпуском для Linux Mint, который я использую). Давайте рассмотрим это:

pyvenv

Он относится к скрипту оболочки пакета python 3.3+ stdlib. Но это было устаревшим с Python 3.6.

Это также stdlib package , который является виртуальным коммутатором среды.

venv

Это пакет stdlib Python 3.3+, целью которого было улучшить и заменить пакет PyPi virtualenv (см. PEP 405). Но, похоже, он еще не существует (по крайней мере, не как полнофункциональный).

python-virtualenv и virtualenv

$ apt-cache show virtualenv | grep Depends Depends: python3, python3-virtualenv

Как вы можете видеть, он работает на Python 3. python-virtualenv пакет предназначен для использования как python2 -m virtualenv py2. Давайте посмотрим, как virtualenv работает над новым Ubuntu Xenial (docker run --rm -it ubuntu:xenial):

$ virtualenv bash: virtualenv: command not found $ apt-get update ... $ apt-get install --yes --no-install-recommends virtualenv Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: ca-certificates dh-python libexpat1 libmpdec2 libpython3-stdlib libpython3.5-minimal libpython3.5-stdlib libsqlite3-0 libssl1.0.0 mime-support openssl python-pip-whl python3 python3-minimal python3-pkg-resources python3-virtualenv python3.5 python3.5-minimal Suggested packages: libdpkg-perl python3-doc python3-tk python3-venv python3-setuptools python3.5-venv python3.5-doc binutils binfmt-support Recommended packages: file The following NEW packages will be installed: ca-certificates dh-python libexpat1 libmpdec2 libpython3-stdlib libpython3.5-minimal libpython3.5-stdlib libsqlite3-0 libssl1.0.0 mime-support openssl python-pip-whl python3 python3-minimal python3-pkg-resources python3-virtualenv python3.5 python3.5-minimal virtualenv ... $ virtualenv test The executable python2 (from --python=python2) does not exist $ virtualenv -p python3 py3 Already using interpreter /usr/bin/python3 Using base prefix '/usr' New python executable in /py3/bin/python3 Also creating executable in /py3/bin/python Installing setuptools, pkg_resources, pip, wheel...done. $ . py3/bin/activate (py3) $ python --version Python 3.5.2 (py3) $ deactivate $ apt-get install --yes --no-install-recommends python Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: libffi6 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python-minimal python2.7 python2.7-minimal Suggested packages: python-doc python-tk python2.7-doc binutils binfmt-support The following NEW packages will be installed: libffi6 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-minimal python2.7 python2.7-minimal ... $ virtualenv py2 Running virtualenv with interpreter /usr/bin/python2 New python executable in /py2/bin/python2 Also creating executable in /py2/bin/python Installing setuptools, pkg_resources, pip, wheel...done. $ . py2/bin/activate (py2) $ python --version Python 2.7.12

Как вы можете видеть, хотя пакет virtualenv использует python3-virtualenv, его по умолчанию является создание Python 2 окружающая среда.

0
ответ дан 20 July 2018 в 14:39
  • 1
    Я также заметил то же самое на своей машине, на которой в то время работал Ubuntu 14.04. - "Как вы можете видеть, хотя виртуальный пакет использует python3-virtualenv, его по умолчанию является создание среды Python 2. & quot; – karel 18 February 2017 в 18:08

Другие вопросы по тегам:

Похожие вопросы: