Python3 как версия Python по умолчанию - PullRequest
0 голосов
/ 11 февраля 2019

Я создаю скрипт, который будет вызывать API и возвращать некоторые результаты.У меня есть скрипт, работающий с pycharm на моем компьютере, но я столкнулся с несколькими проблемами, но сначала я хочу сосредоточиться на этой проблеме.

1) Я не могу установить Python3 в качестве моего Python по умолчанию.

Я использую Mac.Когда я вхожу в терминал, я ввожу $ python --version, и он возвращает Python 2.7.10

, затем я ввожу $ alias python=python3, а когда я запускаю $python --version, он возвращает Python 3.7.2

Когда ясоздайте py.script с помощью модуля os, он не работает.Смотрите мой код ниже.

import os
os.system('alias python=python3')
print(os.system('python --version')

Он печатает 2.7.10

Я также пытался запустить os.system('alias python="python3"')

Ответы [ 4 ]

0 голосов
/ 11 февраля 2019

На компьютерах с операционной системой nix (включая OSX) один из способов изменить версию интерпретатора, с которым запускается скрипт, - добавить шебанг в качестве первой строки вашего скрипта.

Например.

#! /usr/bin/env python3

import sys
print(sys.version)

Затем для запуска скрипта выполните:

~/$ chmod u+x myscript.py
~/$ ./myscript.py 

Вам нужно всего лишь запустить команду chmod в первый раз.Это позволяет вам выполнить файл.Всякий раз, когда вы запускаете свой скрипт напрямую (а не в качестве аргумента для python), ваш скрипт будет запускаться с использованием версии, указанной в shebang.

0 голосов
/ 11 февраля 2019

Интересно - видимо os.system игнорирует псевдоним?Только что проверил это в Linux и получил те же результаты.

Попробуйте sys вместо os:

import sys
print(sys.version)
0 голосов
/ 11 февраля 2019

Это не удивительно, потому что os.system открывает свою собственную оболочку, и запуск alias таким образом влияет только на работающий в данный момент терминал.Каждый вызов os.system был бы в отдельной оболочке.

Я не уверен, какова ваша конечная цель, но вам почти наверняка не нужно менять значение python на оболочку.Это.Если вы это сделаете, вам придется запускать обе команды одновременно.

import subprocess

cp = subprocess.run("alias python=python3 && /path/to/script")
0 голосов
/ 11 февраля 2019

добро пожаловать в ТАК!Pycharm требует, чтобы вы указали, какой интерпретатор использовать по умолчанию, поскольку он не выберет системный по умолчанию.

Итак, если вы хотите python3, вы можете запустить which python3 и использовать путь в качестве параметров для текущего проекта.Как сделать это шаг за шагом здесь:

https://www.jetbrains.com/help/pycharm/configuring-python-interpreter.html

Надеюсь, это поможет, оставьте комментарий, если вам нужно больше деталей.

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