簡體   English   中英

進入python或ipython解釋器時自動導入模塊

[英]Automatically import modules when entering the python or ipython interpreter

我發現自己幾乎每次啟動 python 解釋器時都輸入import numpy as np 如何設置 python 或 ipython 解釋器以便自動導入 numpy?

對於ipython,有兩種方法可以實現此目的。 兩者都涉及ipython的配置目錄,該目錄位於~/.ipython

  1. 創建一個自定義的ipython配置文件。
  2. 或者您可以將啟動文件添加到~/.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時使用它。

打印語句在那里,因此當我啟動外殼程序時,會提醒我它已經生效,並且已經導入了什么內容。 pp快捷鍵也非常方便...

盡管在大多數情況下,創建諸如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',
    ]

在Linux上,作為可接受答案的一種更簡單的選擇:

只需定義一個別名即可,例如,將〜/ .bash_aliases文件中的alias pynp='python -i -c"import numpy as np"' 然后,您可以使用pynp調用python + numpy,並且仍然可以僅將python與python Python腳本的行為保持不變。

您可以將普通的python腳本創建為import_numpy.py或任何您喜歡的東西

#!/bin/env python3
import numpy as np

然后使用-i標志啟動它。

python -i import_numpy.py

這樣,您便可以靈活地只為不同的項目選擇所需的模塊。

正如ravenac95在他的回答中提到的那樣,您可以創建自定義配置文件或修改默認配置文件。 該答案是快速查看import numpy as np自動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選項。 它導入numpymatplotlib (的一部分)。 我添加了--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 中加載所有內容時運行ipython --profile=<your_profile_name>

使用此解決方案,您無需設置任何環境變量。 不過,每次修改ipython文件時都需要將它復制到start.ipy文件夾中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM