我正在创建一个脚本,该脚本将调用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"')
答案 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)