2017-02-17 61 views
0

使用基于Debian的Linux发行版(Kali)进行Python编程(请注意,我对Linux非常陌生,少于2个月)。通过apt-get install安装Python和GitKraken。Linux Terminal ./code.py使用Python 2.7.13进行操作,而IDLE使用Python 3.5.3

开始使用3.5.3 IDLE快乐编码,但是当我尝试使用pip命令来安装模块(所有这些都是root用户)时,我发现它安装到/usr/local/lib/python2.7/dist-packages而不是Python 3.5.3位置( /usr/local/lib/python3.5/dist-packages)。

当我使用pip install module时,它将所有模块安装到2.7位置。由于终端默认使用了2.7(无论出于何种原因),使用./code.py总是使用Python 2.7运行代码,但我为Python 3.5编写了代码(不是模块的安装版本)。

我在这个网站上看到类似问题的一些其他答案,您必须安装新模块并更改PYTHONPATH变量并指定别名,但它弄乱了更多的东西。现在echo $PYTHONPATH不会返回任何内容,并且pip仍会安装到Python 2.7位置。

我用apt-get来安装python-pip3,我使用pip3命令来安装模块,但每当我使用./code.py(我的主要方法来运行代码),它仍然使用Python 2.7。我该如何改变这一点?

+0

如果你有'pip3',那么试试'python3 code.py'来运行 –

回答

1

编辑家当在code.py第一行指向你的Python 3.5二进制文件,例如:

#!/usr/bin/env python3 

或者,如果它不为python3图链接的是你的Python 3.5二进制文件并使用它。

+0

最初有'#!/ usr/bin/python',最后必须添加一个3.5。现在(带有'pip'和'python'的别名),一切运行良好。 – JoshuaS3

+0

在回答中使用env是更好的选择,因为它更便于携带 - env的安装位置在unix系统和linux发行版中都很好地标准化,python的位置(和确切的子版本)不是。 '/ usr/bin/env python3'更有可能在另一个系统上工作,而不是在/ usr/bin/python3.5中。即使其他系统在路径中有'python3',它可能位于'/ bin'或'/ usr/local/bin'中,它可能是'python3.6'或其他名称等。 – zstewart