Linux Terminal./code.py使用Python 2.7.13运行,而IDLE使用Python 3.5.3
使用基于Debian的Linux发行版(Kali)进行Python编程(注意,我对Linux非常陌生,使用不到2个月)。使用Linux Terminal./code.py使用Python 2.7.13运行,而IDLE使用Python 3.5.3,python,linux,terminal,debian-based,Python,Linux,Terminal,Debian Based,使用基于Debian的Linux发行版(Kali)进行Python编程(注意,我对Linux非常陌生,使用不到2个月)。使用apt get install以通常的方式安装Python和GitKraken 开始很高兴地使用3.5.3 IDLE进行编码,但当我尝试使用pip命令安装模块(所有这些都是作为root用户)时,我发现它安装到/usr/local/lib/python2.7/dist包而不是Python 3.5.3位置(/usr/local/lib/python3.5/dist包) 当我使用
apt get install
以通常的方式安装Python和GitKraken
开始很高兴地使用3.5.3 IDLE进行编码,但当我尝试使用pip命令安装模块(所有这些都是作为root用户)时,我发现它安装到/usr/local/lib/python2.7/dist包
而不是Python 3.5.3位置(/usr/local/lib/python3.5/dist包
)
当我使用pip安装模块时,它将所有模块安装到2.7位置。因为终端默认使用2.7(无论出于何种原因),所以使用/code.py
总是使用Python2.7运行代码,但我为Python3.5编写了代码(不是安装模块的版本)
我在这个网站上看到了一些关于类似问题的其他答案,你必须安装新的模块,更改PYTHONPATH
变量并分配别名,但这会把更多的事情搞糟。现在,echo$PYTHONPATH
不返回任何内容,pip仍然安装到Python 2.7位置
我使用apt get
安装python-pip3,并使用pip3命令安装模块,但无论何时使用/code.py
(我运行代码的主要方法),它仍然使用python 2.7。如何更改此设置?编辑code.py
第一行的shebang,指向Python 3.5二进制文件,例如:
#!/usr/bin/env python3
或者如果它没有链接为python3
找出你的python3.5二进制文件是什么,然后使用它。如果你有pip3
,那么试试python3 code.py
来运行原始的#/usr/bin/python
,不得不在末尾添加一个3.5版本。现在(有了pip
和python
的别名),一切都运行得很好。答案中使用env更可取,因为它更具可移植性-env的安装位置在unix系统和linux发行版中得到了很好的标准化,而python的位置(以及确切的子版本)则没有/usr/bin/env python3
比/usr/bin/python3.5
更可能在另一个系统上工作。即使另一个系统的路径中有python3
,它也可能位于/bin
或/usr/local/bin
,也可能是python3.6
或其他名称,等等。