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 все еще работает с питоном? если 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?
Кстати, я попробовал sudo apt-get python3-virtualenv и получил: E: Невозможно найти пакет python3-virtualenv
Способ установки пакетов Python 3.x в виртуальной среде Python заключается в создании виртуальной среды Python с помощью создателя виртуальной среды Python 3 ( python3-virtualenv ). python3-virtualenv находится в репозиториях Ubuntu по умолчанию в Ubuntu 14.10 и новее.
Установить средство создания виртуальной среды Python 3
sudo apt install virtualenv python3-virtualenv
Создайте виртуальную среду Python для python3. Вы можете устанавливать пакеты python3 только внутри этой виртуальной среды Python. Если вы также хотите установить пакеты Python 2.x, вам необходимо создать другую виртуальную среду Python.
virtualenv -p python3 env
источник ./env/bin/activate
Новая виртуальная среда Python для python3 будет создана в каталоге env
, который находится в текущем каталоге.
Установить пакеты Python.
cd / path / to / env / # env - это каталог виртуальной среды python3 исходный бункер / активировать python3 -m pip install first-package-name next-package-name last-package-name
Это новая виртуальная среда python3 с последней версией pip3, поэтому установка пакетов Python в ней будет отлично работать.
sudo apt-get install virtualenvwrapper
gedit .bashrc
Добавьте следующую строку в конец .bashrc.
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
. .virtualenvs
- это скрытая папка.
Установить пакет.
cd ~/.virtualenvs/py3 source bin/activate python2 -m pip install package-name
Что ж, это усложняется. Следующее показано для Ubuntu Xenial (который является базовой версией Linux Mint, которую я использую). Давайте разберемся:
Это относится к сценарию оболочки Python 3.3+ stdlib . Но он устарел, начиная с Python 3.6.
Это также пакет PyPi , который является переключателем виртуальной среды.
Это пакет Python 3.3+ stdlib , целью которого было улучшение и замена пакета PyPi virtualenv (см. PEP 405 ). Но, похоже, его еще нет (по крайней мере, не так полно).
$ 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.