Python3作为默认python版本

时间:2019-02-11 16:19:43

标签: python python-3.x macos

我正在创建一个脚本,该脚本将调用API并返回一些结果。我的计算机上有处理pycharm的脚本,但是遇到了一些问题,但是我想首先关注这个问题。

1)我无法将Python3设置为默认python。

我正在使用Mac。当我进入终端时,我输入$ python --version并返回Python 2.7.10

然后我输入$ alias python=python3,当我运行$python --version时,它将返回Python 3.7.2

当我使用os模块创建py.script时,它不起作用。请参阅下面的代码。

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

它打印2.7.10

我还尝试运行os.system('alias python="python3"')

4 个答案:

答案 0 :(得分:2)

在-nix机器(包括OSX)上,更改脚本运行的解释器版本的一种方法是添加一个shebang作为脚本的第一行。

例如。

#! /usr/bin/env python3

import sys
print(sys.version)

然后运行脚本:

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

您仅需要第一次运行chmod命令。它使您能够执行文件。每当您直接运行脚本(而不是作为python的参数)时,您的脚本都将使用shebang指定的版本运行。

答案 1 :(得分:1)

欢迎您! Pycharm需要您指定默认使用哪个解释器,因为默认情况下它不会选择系统之一。

因此,如果需要python3,则可以运行which python3,并将路径用作当前项目的设置。如何逐步执行此操作:

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

希望有帮助,如果您需要更多详细信息,请发表评论。

答案 2 :(得分:1)

这并不奇怪,因为os.system打开了自己的外壳程序,以这种方式运行alias仅影响当前正在运行的终端。对os.system的每次调用将在单独的外壳中。

我不确定您的最终目标是什么,但是您几乎可以肯定不需要将python的含义更改为Shell即可。如果这样做,则必须一次运行两个命令。

import subprocess

cp = subprocess.run("alias python=python3 && /path/to/script")

答案 3 :(得分:0)

有趣-显然os.system忽略了别名?只需在Linux中检查它,即可得到相同的结果。

尝试用sys代替os

import sys
print(sys.version)