Python __;在特定模块之外

Python __;在特定模块之外,python,matplotlib,Python,Matplotlib,在Python2.7中,通过使用 from __future__ import division, print_function 我现在可以打印(1/2)显示0.5 但是,有可能在python启动时自动导入该文件吗 我尝试使用sitecustomize.py特殊模块,但输入端口仅在模块内部有效,在shell中无效 我相信人们会问我为什么需要它:教青少年Python我注意到整数除法对他们来说并不容易,所以我们决定改用Python 3。然而,本课程的一个要求是能够绘制函数,它非常好,但只对Pyt

在Python2.7中,通过使用

 from __future__ import division, print_function
我现在可以打印(1/2)显示
0.5

但是,有可能在python启动时自动导入该文件吗

我尝试使用
sitecustomize.py
特殊模块,但输入端口仅在模块内部有效,在shell中无效

我相信人们会问我为什么需要它:教青少年Python我注意到整数除法对他们来说并不容易,所以我们决定改用Python 3。然而,本课程的一个要求是能够绘制函数,它非常好,但只对Python2.7有效

所以我的想法是使用定制的2.7安装…这并不完美,但我没有更好的主意同时使用Matplotlib和新的“自然”分区“1/2=0.5”


在Python3.2上运行的任何建议或Matplotlib替代方案?这可能不实用,但您可以编译一个自定义python,并将Python3除法行为后端口化。问题是
matplotlib
可能需要Python 2的行为(尽管我不确定)。

Python 3上的matplotlib比您想象的更接近:

为什么不使用PYTHONSTARTUP而不是sitecustomize.py

localhost-2:~ $ cat startup.py 
from __future__ import print_function
from __future__ import division
localhost-2:~ $ export PYTHONSTARTUP=""
localhost-2:~ $ python
Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 1/2
0
>>> print("fred",end=",")
  File "<stdin>", line 1
    print("fred",end=",")
                    ^
SyntaxError: invalid syntax
>>> ^D
localhost-2:~ $ export PYTHONSTARTUP=startup.py
localhost-2:~ $ python
Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 1/2
0.5
>>> print("fred",end=",")
fred,>>> 
localhost-2:~$cat startup.py
来自未来导入打印功能
来自未来进口部
localhost-2:~$export PYTHONSTARTUP=“”
localhost-2:~$python
Python 2.7.2(v2.7.2:8527414a2,2011年6月11日,15:22:34)
[GCC 4.2.1(苹果公司建造5666)(dot 3)]关于达尔文
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>> 1/2
0
>>>打印(“fred”,end=“,”)
文件“”,第1行
打印(“fred”,end=“,”)
^
SyntaxError:无效语法
>>>^D
localhost-2:~$export PYTHONSTARTUP=startup.py
localhost-2:~$python
Python 2.7.2(v2.7.2:8527414a2,2011年6月11日,15:22:34)
[GCC 4.2.1(苹果公司建造5666)(dot 3)]关于达尔文
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>> 1/2
0.5
>>>打印(“fred”,end=“,”)
弗雷德,>>>

无需编译Python 2.x的新版本。您可以在启动时执行此操作

正如您所发现的,sitecustomize.py不起作用。这是因为来自未来导入标识符的
不是导入。它根据特殊规则标记要编译的模块。任何使用这些功能的模块都必须具有
\uuuuu future\uuuu
导入功能以及交互式控制台

以下shell命令将在
分区
打印功能
激活的情况下启动交互式控制台:

python -ic "from __future__ import division, print_function"
您可以将别名设置为
python
(在linux上),或者设置一个启动器来隐藏额外的内容

如果您使用的是IDLE,那么
PYTHONSTARTUP
script@DSM建议也可以在那里使用

请注意,这些在整个解释器中不是全局的,它只影响交互式控制台。文件系统上的模块必须明确地从
\uuuuuuuuuuuuuuuuuuuuuuuu导入才能使用该功能。如果这是一个问题,我建议制作一个模板,将所有需要的导入作为工作的基础:

# True division
from __future__ import division

# Modules
import matplotlib

# ... code ...

def main():
    pass

if __name__ == "__main__":
    main()

是的,我看到这项工作4个月前就开始了,但我没有设法手动安装numpy(在我的64位计算机上),所以我最终使用了这个软件包:我将尝试PYTHONSTARTUP
PYTHONSTARTUP