如何在python 3下默认运行.py可执行文件?

时间:2016-01-22 13:53:09

标签: python python-3.x

这个问题可能已被要求死亡,但我似乎无法找到答案。

我可以像这样运行python 3脚本:

python3 my.py

但是,假设我将其设为可执行文件并自行运行。然后它通常在python 2下执行,但我希望它在python 3下。这可能吗?

chmod u+x my.py
./my.py     #executes under python 2.

我可以在脚本的第一行添加内容吗?或者我可以更改全局系统默认值吗? (我在OS X上)。 另外,更改全局默认值是否安全,我的任何应用程序是否都会停止工作?

2 个答案:

答案 0 :(得分:1)

我认为如果你写

#!/usr/local/bin/python3

作为文件的第一行,它将被执行b python 3。

请注意,您必须将其执行为:

./my.py

如果你这样做

python my.py

我不知道会发生什么。如果你的默认python版本是2.7,它可能会被那个版本执行。

答案 1 :(得分:1)

几乎所有#!/usr/bin/env python3 变体都支持以下内容:

$PATH

所以添加它作为第一行会发现Python 3假设python所在的路径包含在List<Integer> notToModifyIds = dao.getDoNotModifyIds(parentEntity.getId()); MyEntityFromList entityFromClient, entityFromDb; for(Integer notToModifyId : notToModifyIds){ ListIterator iterator = parentEntity.getEntities().listIterator(); while(iterator.hasNext()){ entityFromClient = (MyEntity) iterator.next(); if(Objects.equals(entityFromClient.getId(), notToModifyId)){ dao.evict(entityFromClient); entityFromDb = (MyEntity) dao.get(MyEntity.class, notToModifyId); iterator.remove(entityFromClient); iterator.add(entityFromDb); } } }