Как заставить dev_appserver.py использовать отдельную версию python? - PullRequest
0 голосов
/ 13 апреля 2020

На бесплатной sh установке Ubuntu у меня есть python 2.7, 3.6 и 3.7.

Запуск python --version дает мне 3.7. Я могу запустить dev_appeserver, используя 2.7, но кажется, что он выбирает использовать 3.6 внутри:

INFO     2020-04-12 21:16:19,875 instance_factory.py:121] Detected Python 3.6.9

Как я могу заставить его использовать python 3.7?

Редактировать :

Немного подробнее. Таким образом, в моем app.yaml время выполнения правильно установлено:

runtime: python37

Так что теоретически SDK должен использовать python 3.7 внутри. Не уверен, почему он по умолчанию равен 3,6

Попытка вызова dev_appserver.py напрямую дает еще более странную ошибку:

ERROR    2020-04-15 09:19:07,053 sdk_update_checker.py:203] The requested api_version (None) is not supported by the python37 runtime in this release of the SDK. The supported api_versions are ['1'].

1 Ответ

0 голосов
/ 13 апреля 2020

Пересмотр установлен Python версии

На тестовом сервере в этом примере установлены Python v2.7 и v3.5. Команды оболочки python, python2, python3 являются просто ссылками на исполняемые файлы /usr/bin/python2.7 и /usr/bin/python3.5.

$ python    # type in "python", then press `Tab` 
 python      python2     python2.7   python3     python3.5 

$ which python python2 python2.7 python3 python3.5
 /usr/bin/python 
 /usr/bin/python2 
 /usr/bin/python2.7 
 /usr/bin/python3 
 /usr/bin/python3.5 

$ cd /usr/bin
$ ls -go python python2 python2.7 python3 python3.5
 lrwxrwxrwx 1       9 Jan 24  2017 python -> python2.7 
 lrwxrwxrwx 1       9 Jan 24  2017 python2 -> python2.7 
 -rwxr-xr-x 1 3779512 Nov 24  2017 python2.7 
 lrwxrwxrwx 1       9 Jan 20  2017 python3 -> python3.5 
 -rwxr-xr-x 2 4747120 Jan 19  2017 python3.5 

Изменить символические ссылки

Существующие Python символические ссылки могут быть переопределены при необходимости, например:

$ cd /usr/bin
$ ls -go python
 lrwxrwxrwx 1 9 Jan 24  2017 python -> python2.7 
$ python -V 
 Python 2.7.13 

$ sudo rm python 
$ sudo ln -s python3.5 python 
$ ls -go python 
 lrwxrwxrwx 1 9 Apr 13 19:08 python -> python3.5 
$ python -V 
 Python 3.5.3 

Выполнить Python scripts

Существует два часто используемых метода для запуска Python script в Linux shell:

  1. Запуск Python самого сценария без указания интерпретатора в командная строка;
  2. Запустить интерпретатор и передать в качестве параметра скрипт Python.

1. Добавьте строку Шебанга в начале скрипта, чтобы указать определенного интерпретатора. Для Python v3 (в данном примере с переопределенными символическими ссылками) может быть любое из следующих:

#!/usr/bin/python
#!/usr/bin/python3
#!/usr/bin/python3.5

Затем запустите скрипт:

$ ./my_script.py

2. Запуск Python v3 исполняемого файла со скриптом в качестве параметра. В этом примере любая команда из перечисленных ниже будет работать:

$ python my_script.py
$ python3 my_script.py
$ python3.5 my_script.py
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...