[Ноябрь 2019] Мне нужно было установить среду Python 3.7 (env) в моей системе Arch Linux на основе Python 3.8. Python 3.7 больше не присутствовал в системе, поэтому я не мог понизить версию Python до установки необходимого мне пакета.
Кроме того, я хотел использовать этот пакет / Python 3.7 в виртуальной среде (venv). Вот как я это сделал.
Загрузите исходные файлы версии Python:
Я скачал исходные файлы Python 3.7.4 с
https://www.python.org/downloads/source/
в
/mnt/Vancouver/apps/python_versions/src/Python-3.7.4.tgz
Затем я извлек этот архив (исходные файлы) в
/mnt/Vancouver/apps/python_versions/src/Python-3.7.4/
Установка:
[Примечание: в моей системе env, а не venv.]
cd /mnt/Vancouver/apps/python_versions/src/Python-3.7.4/
time ./configure ## 17 sec
time make ## 1 min 51 sec
time sudo make install ## 18 sec
time make clean ## 0.3 sec
Проверьте установленные версии Python:
$ which python
/usr/bin/python
$ python --version
Python 3.8.0
$ which python3.7
/usr/local/bin/python3.7
$ python ## Python 3.8 [system / env]
Python 3.8.0 (default, Oct 23 2019, 18:51:26)
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
$ python3.7 ## newly-installed Python 3.7 package
Python 3.7.4 (default, Nov 20 2019, 11:36:53)
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.version)
3.7.4 (default, Nov 20 2019, 11:36:53)
[GCC 9.2.0]
>>>
$ python3.7 --version
Python 3.7.4
Как создать venv для конкретной версии Python:
https://docs.python.org/3/tutorial/venv.html
12.2. СОЗДАНИЕ ВИРТУАЛЬНЫХ СРЕД
Модуль, используемый для создания и управления виртуальными средами, называется venv
.venv
обычно устанавливает самую последнюю версию Python, которая у вас есть. Если в вашей системе имеется несколько версий Python, вы можете выбрать конкретную версию Python, запустив python3 или любую другую версию, какую захотите.
Чтобы создать виртуальную среду, определите каталог, в который вы хотите поместить его, и запустите модуль venv в виде сценария с путем к каталогу:
python3 -m venv tutorial-env
Это создаст tutorial-env
каталог, если он не существует, а также создаст каталоги внутри него, содержащие копию интерпретатора Python, стандартную библиотеку и различные вспомогательные файлы. ...
Создайте Python 3.7 venv [на операционной системе Python 3.8 / system]:
python3.7 -m venv ~/venv/py3.7 ## create Python 3.7-based venv
source ~/venv/py3.7/bin/activate ## activate that venv
deactivate ## deactivate that venv (when done, there)
Добавлено в ~/.bashrc
:
alias p37='echo " [Python 3.7 venv (source ~/venv/py3.7/bin/activate)]" && source ~/venv/py3.7/bin/activate'
Тест Python 3.7 venv:
$ p37
[Python 3.7 venv (source ~/venv/py3.7/bin/activate)]
(py3.7)$ python --version
Python 3.7.4
(py3.7)$ python
Python 3.7.4 (default, Nov 20 2019, 11:36:53)
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.version)
3.7.4 (default, Nov 20 2019, 11:36:53)
[GCC 9.2.0]
>>>