每当我启动 Python 解释器时,我几乎总是要键入 import numpy as np
。我应该如何设置 Python 或 IPython 解释器,以便自动导入numpy?
~/.ipython
中。
~/.ipython/profile_default/startup/
中.py
或.ipy
文件放在~/.ipython/profile_default/startup
目录中,它就会自动执行。因此,你可以简单地在一个简单的文件中放置import numpy as np
,并将np置于你的ipython提示符的命名空间中。np
对你可用,那么请把它放在启动目录中。使用环境变量PYTHONSTARTUP。根据官方文档:
如果该变量是一个可读文件的名称,则在交互模式下显示第一个提示之前会执行该文件中的Python命令。该文件在与交互命令相同的名称空间中执行,因此可以在交互会话中使用其中定义或导入的对象而无需限定。
因此,只需创建带有导入语句的Python脚本,并将环境变量指向它即可。话虽如此,要记住“明确优于隐含”,因此不要依赖此行为用于生产脚本。
对于IPython,请参见此教程以了解如何创建ipython_config文件。
env PYTHONSTARTUP="~/.startup.py"
对我没有起作用。 - Seanny123export PYTHONSTARTUP=~/.python_shell_startup.py
以设置变量。 - PallavBakshi我使用一个类似这样的 ~/.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,当启动shell时Python将使用它。
打印语句放在那里是为了在启动shell时提醒我它已经在生效,并且已经导入了哪些内容。 pp
快捷键也非常方便...
~
是否能够代替$HOME
, 但是在 MacOS、fish 和 python3 中,我不得不使用绝对路径而非相对路径。 - rien333pprint.pp()
,因此您可能希望更改该快捷方式以避免混淆。 - wjandreaPYTHONSTARTUP=~/.startup.py
?难道我们不应该使用 "
来表示路径吗?(PYTHONSTARTUP="~/.startup.py"
) - Shayan当创建一个自定义启动脚本时,像ravenac95 suggests这样是大多数情况下的最佳答案,但在想要使用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',
]
alias pynp='python -i -c"import numpy as np"'
。然后您可以使用pynp
调用python+numpy,而仍然可以使用python
来执行python脚本,不会影响其行为。PYTHONSTARTUP
is only invoked on interactive mode, so python scripts‘ behaviour is kept untouched anyways. An alias could also be created with a file reference: alias pynp='PYTHONSTARTUP="~/.startup.py" python'
- F.Raab#!/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 profile create <your_profile_name>
。提示:不要将单词“profile”添加到名称中,因为 ipython 已经包含它。cp start.ipy ~/.ipython/profile_<your_profile_name>/startup/start.ipy
ipython --profile=<your_profile_name>
。使用这种解决方案,您无需设置任何环境变量。但是,您需要每次修改start.ipy
文件时将其复制到ipython
文件夹中。
~/.config/ipython/profile_default/startup/
而不是~/.ipython/profile_default/startup/
。 - Peter~/.ipython/profile_default/startup/
而不是~/.config/ipython/profile_default/startup/
。 - ramwin