我发现自己import numpy as np
几乎每次启动 python 解释器时都在打字。如何设置 python 或 ipython 解释器以便自动导入 numpy?
9 回答
对于 ipython,有两种方法可以实现这一点。两者都涉及 ipython 的配置目录,该目录位于~/.ipython
.
- 创建自定义 ipython 配置文件。
- 或者你可以添加一个启动文件到
~/.ipython/profile_default/startup/
为简单起见,我将使用选项 2。您所要做的就是在目录中放置一个.py
或.ipy
文件,~/.ipython/profile_default/startup
它将自动执行。因此,您可以简单地放置import numpy as np
在一个简单的文件中,并且您将在 ipython 提示符的命名空间中拥有 np。
选项 2 实际上将使用自定义配置文件,但使用自定义配置文件将允许您根据特定情况更改启动要求和其他配置。但是,如果您总是想随时待命,那么请务必np
将其放在启动目录中。
有关 ipython 配置的更多信息。文档有更完整的解释。
使用环境变量PYTHONSTARTUP。来自官方文档:
如果这是一个可读文件的名称,则该文件中的 Python 命令会在第一个提示以交互模式显示之前执行。该文件在执行交互式命令的同一名称空间中执行,以便在其中定义或导入的对象可以在交互式会话中使用而无需限定。
因此,只需使用 import 语句创建一个 python 脚本并将环境变量指向它。话虽如此,请记住“显式总是比隐式好”,所以不要依赖这种行为来生产脚本。
对于 Ipython,请参阅本教程以了解如何制作 ipython_config 文件
我使用这样的 ~/.startup.py 文件:
# Ned's .startup.py file
print("(.startup.py)")
import datetime, os, pprint, re, sys, time
print("(imported datetime, os, pprint, re, sys, time)")
pp = pprint.pprint
然后定义 PYTHONSTARTUP=~/.startup.py,Python 会在启动 shell 时使用它。
打印语句在那里,所以当我启动 shell 时,我会收到一个提醒,它已经生效,并且已经导入了什么。快捷pp
方式也很方便......
作为已接受答案的更简单替代方法,在 linux 上:
只需定义一个别名,例如放入alias pynp='python -i -c"import numpy as np"'
您的 ~/.bash_aliases 文件中。然后你可以调用 python+numpy with pynp
,你仍然可以只使用 python with python
。Python 脚本的行为保持不变。
虽然创建像ravenac95 建议的自定义启动脚本是大多数情况下的最佳通用答案,但在您想要使用from __future__ import X
. 如果您有时在 Python 2.x 中工作但想使用现代除法,那么只有一种方法可以做到这一点。创建配置文件后,编辑profile_default
(对于 Ubuntu,位于 中~/.ipython/profile_default
)并在底部添加如下内容:
c.InteractiveShellApp.exec_lines = [
'from __future__ import division, print_function',
'import numpy as np',
'import matplotlib.pyplot as plt',
]
你可以创建一个普通的 python 脚本,import_numpy.py
或者任何你喜欢的东西
#!/bin/env python3
import numpy as np
然后用-i
标志启动它。
python -i import_numpy.py
这样的方式将使您可以灵活地为不同的项目选择只需要的模块。
正如ravenac95在他的回答中提到的,您可以创建自定义配置文件或修改默认配置文件。这个答案是import numpy as np
自动所需的 Linux 命令的快速视图。
如果要使用名为 的自定义配置文件numpy
,请运行:
ipython profile create numpy
echo 'import numpy as np' >> $(ipython locate profile numpy)/startup/00_imports.py
ipython --profile=numpy
或者,如果您想修改默认配置文件以始终导入 numpy:
echo 'import numpy as np' >> $(ipython locate profile default)/startup/00_imports.py
ipython
查看IPython 配置教程以深入了解配置配置文件。请参阅.ipython/profile_default/startup/README
以了解启动目录的工作原理。
我的默认ipython
调用是
ipython --pylab --nosep --InteractiveShellApp.pylab_import_all=False
--pylab
ipython
一段时间以来一直是一种选择。它进口numpy
和(部分)matplotlib
。我添加了该--Inter...
选项,因此它不使用*
导入,因为我更喜欢使用显式的np....
.
这可以是快捷方式、别名或脚本。
我创建了一个小脚本来使用您想要的代码初始化 ipython。
start.ipy
在项目根文件夹中创建一个文件。- 使用进入 ipython 所需的所有内容编辑创建的文件。
ipython profile create <your_profile_name>
. 提示,不要在名称中添加单词“profile”,因为 ipython 已经包含它。cp start.ipy ~/.ipython/profile_<your_profile_name>/startup/start.ipy
ipython --profile=<your_profile_name>
每次需要在 ipython 中加载所有内容时运行。
使用此解决方案,您无需设置任何环境变量。但是,每次修改文件时都需要将文件复制到start.ipy
文件夹中。ipython