如何在IDLE启动文件中使用__future__除法

时间:2014-11-17 16:29:19

标签: python division future python-idle

在Python 2.7中,每次开始IDLE时,如何在不键入\__future__ division的情况下使IDLE应用程序使用from \__future__ import division

如果我将from \__future__ import division放在我的.idlestartup文件的顶部,它将被忽略,即使执行了.idlestartup中的其他内容。例如:

~> cat >.idlestartup
from __future__ import division
print("Executing .idlestartup")
~> idle -s

这是我尝试分割后我的IDLE窗口的样子:

Python 2.7.8 |Anaconda 2.1.0 (x86_64)| (default, Aug 21 2014, 15:21:46) 
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin
Type "copyright", "credits" or "license()" for more information.
>>> 
Executing .idlestartup
>>> 2/3
0
>>>

我正在使用Mac OS X 10.9.5 Mavericks(在早期版本的OS X上也遇到了同样的问题)。请注意,包含上面的命令行版本是为了更容易显示我正在谈论的内容,但我更感兴趣的版本是从GUI运行IDLE应用程序。

下面的Ashwini Chaudhary建议的解决方案是从命令行运行Anaconda版本,但不是用于运行IDLE应用程序。

通过添加" sys.argv.insert(1,' -Qnew')"我终于能够在IDLE应用程序中自动运行未来部门。到/Applications/IDLE.app/Contents/MacOS/IDLE。这和Ashwini Chaudhary在下面的解决方案都显得很脆弱。我想知道是否有更清洁的方式。

1 个答案:

答案 0 :(得分:2)

__future__顶部添加/usr/lib/python2.7/idlelib/PyShell.py语句为我完成了这项工作。

我在Ubuntu上,其他操作系统的路径可能会有所不同:

>>> import idlelib
>>> idlelib.PyShell.__file__
'/usr/lib/python2.7/idlelib/PyShell.py'