我创建一个脚本,将调用的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"')
在-nix机器(包括OSX),以改变翻译的版本,该脚本运行的一种方式是添加认领作为脚本的第一行。
例如。
#! /usr/bin/env python3
import sys
print(sys.version)
然后运行脚本做到:
~/$ chmod u+x myscript.py
~/$ ./myscript.py
你只需要运行chmod
命令的第一次。它使您能够执行该文件。每当你直接运行脚本(而不是作为参数传递给Python)的脚本将使用由家当指定的版本上运行。
欢迎SO! Pycharm需要你指定为默认使用的解释,因为它不会选择默认情况下系统中的一个。
所以,如果你想python3
,你可以运行which python3
,并使用路径作为当前项目的设置。如何做到循序渐进是在这里:
https://www.jetbrains.com/help/pycharm/configuring-python-interpreter.html
希望它能帮助,发表评论,如果你需要更多的细节。
这并不奇怪,因为os.system
打开自己的壳,并以这种方式运行alias
只影响当前正在运行的终端。到os.system
每次调用将在单独的外壳。
我不知道你的最终目标是什么,但你几乎肯定不需要改变什么python
意味着一个shell来做到这一点。如果你这样做,你必须同时运行这两个命令。
import subprocess
cp = subprocess.run("alias python=python3 && /path/to/script")
有趣的 - 显然使用os.system忽略别名吗?刚刚检查它在Linux中,得到了相同的结果。
尝试sys
代替os
的:
import sys
print(sys.version)