Как я могу изменить интерпретатор Python в виртуальной среде (Ubuntu 18.04LTS)? - PullRequest
6 голосов
/ 05 февраля 2020

До сих пор я всегда использовал Anaconda на Windows и мог настроить среду, выбирая, какую именно Python использовать. Например, conda create -n myEnvName python=3.7

Теперь я хочу ознакомиться с Ubuntu 18.04 LTS и использовать базовые среды c Python.

Итак, я выполнил следующие действия:

  1. Созданная папка в моем home = ~/.venvPython
    • (а) Я думаю, что у меня уже есть 2,7 и 3,6 по умолчанию в ОС.
    • (b) Я точно не помню, думаю, мне пришлось это сделать sudo apt-get install python3-venv.
  2. Создавать таким образом среду после CD'инга в .venv Папка Python запустила это: python3 -m venv venv1BigDataPgm2
  3. source ~/.venvPython/venv1BigDataPgm2/bin/activate
  4. Команда python --version говорит: Python 3.6.9

Запуск whereis Python показывает это:

rohit@rohitUb18043LTS:~$ whereis python
python: /usr/bin/python3.6 /usr/bin/python3.6-config /usr/bin/python2.7-config /usr/bin/python3.6m-config /usr/bin/python /usr/bin/python3.6m /usr/bin/python2.7 /usr/lib/python3.8 /usr/lib/python3.7 /usr/lib/python3.6 /usr/lib/python2.7 /etc/python3.6 /etc/python /etc/python2.7 /usr/local/lib/python3.6 /usr/local/lib/python2.7 /usr/include/python3.6 /usr/include/python3.6m /usr/include/python2.7 /usr/share/python /usr/share/man/man1/python.1.gz

Мои сомнения: можно ли указать версию Python напрямую при создании среды, например, с conda ? Как я могу изменить это на какой-то другой переводчик вместо 3.6.9? Нужно ли сначала вручную устанавливать другой Python, а затем указывать его как-нибудь?

Пожалуйста, помогите мне. Спасибо. Рохит

Ответы [ 4 ]

1 голос
/ 05 февраля 2020

Насколько я могу судить, стандартная библиотека venv появилась в Python 3.3 и никогда не была перенесена в 2.7 .

venv может создавать виртуальную среду только для собственной версии интерпретатора, а каталог виртуальной среды нельзя перемещать в другое место или переименовывать. Python 3.foo не может создать виртуальную среду для Python 3.bar . Поэтому лучше всего выбрать требуемый интерпретатор с самого начала.

Поскольку, как показывает вывод whereis python, у вас, похоже, уже установлено несколько Python интерпретаторов, вы должны иметь возможность выполните что-то вроде следующего:

$ /path/to/python3.3 -m venv /path/to/my/venvs/venv33
$ /path/to/python3.8 -m venv /path/to/my/venvs/venv38

Кажется, есть способ изменить интерпретатор Python, связанный с виртуальной средой (я не проверял это, не уверен, каковы ограничения):

$ /path/to/python3.8 -m venv --upgrade /path/to/my/venvs/venv33

В качестве альтернативы используйте virtualenv , который, кажется, предлагает немного большую гибкость, но, вероятно, менее эффективен (следующий основной выпуск, virtualenv 20 , хотя и принесет много улучшений).

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

Альтернативой этому является всегда указывать версию python, которую вы будете использовать sh при запуске скрипта.

python3.6 test_script.py
0 голосов
/ 05 февраля 2020

Обычно, когда я на Linux и мне не нужна указанная c python3 версия, я создаю собственную python3 среду.

python3 -m venv myenv
source myenv/bin/activate

Но если мне нужна Speci c python3 версия, Miniconda среды являются легковесными и прекрасно работают.

conda create -n myenv python=3.6
conda activate myenv

Для использования версии Speci c python3 с собственными средами у вас есть установить эту версию с помощью собственного менеджера пакетов (например, apt).

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

Ubuntu и другие системы на основе Debian обычно поставляются в зависимости от того, какая версия Python была текущей и считалась достаточно протестированной на момент публикации релиза; после этого выпускаются только обновления безопасности, которые сохраняют номер версии, но добавляют исправления (так что вы можете получить 3.6.9-123security4 вместо 3.6.9-5 или что-то еще, что было текущим на момент выпуска релиза).

Если вы хотите запустить указанную c Python версию на одной из этих платформ, посмотрите, можете ли вы найти источник Apt, который предоставляет эту версию для вашей системы (в Ubuntu есть мягкое недоумение неофициальных PPA различной репутации; в Debian есть backports) или установите его из исходных текстов самостоятельно. Существуют дополнения, такие как pyenv, которые позволяют сделать это довольно легко, безопасно и прозрачно.

Также может существовать существующий пакет, который дает вам конкретную более новую версию; например, вы можете сделать apt install python3.7 и apt install python3.8 в Ubuntu 18.04, но нет пакетов для 3.5 или 3.9. Попробуйте apt policy python3.7, чтобы узнать, какая указанная c дополнительная версия доступна из архива пакетов Ubuntu.

...