Python3作为默认的Python版本

问题描述 投票:1回答:4

我创建一个脚本,将调用的API,并返回了一定的成效。我有脚本pycharm工作在我的电脑上,但我遇到了一些问题,但我希望把重点放在这个问题第一次。

1)我无法设置Python3作为默认的Python。

我使用的是Mac。当我进入终端我输入$ python --version并返回Python 2.7.10

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

当我创建的操作系统模块py.script,这是行不通的。请参阅下面我的代码。

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

它打印2.7.10

我也试着运行os.system('alias python="python3"')

python python-3.x macos
4个回答
2
投票

在-nix机器(包括OSX),以改变翻译的版本,该脚本运行的一种方式是添加认领作为脚本的第一行。

例如。

#! /usr/bin/env python3

import sys
print(sys.version)

然后运行脚本做到:

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

你只需要运行chmod命令的第一次。它使您能够执行该文件。每当你直接运行脚本(而不是作为参数传递给Python)的脚本将使用由家当指定的版本上运行。


1
投票

欢迎SO! Pycharm需要你指定为默认使用的解释,因为它不会选择默认情况下系统中的一个。

所以,如果你想python3,你可以运行which python3,并使用路径作为当前项目的设置。如何做到循序渐进是在这里:

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

希望它能帮助,发表评论,如果你需要更多的细节。


1
投票

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

我不知道你的最终目标是什么,但你几乎肯定不需要改变什么python意味着一个shell来做到这一点。如果你这样做,你必须同时运行这两个命令。

import subprocess

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

0
投票

有趣的 - 显然使用os.system忽略别名吗?刚刚检查它在Linux中,得到了相同的结果。

尝试sys代替os的:

import sys
print(sys.version)
© www.soinside.com 2019 - 2024. All rights reserved.