运行python脚本时自动导入模块?

2024-09-29 18:45:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我想别人可能会问这个,但我找不到。我的问题是,我的.ipython/ipy_user_conf.py中有以下陈述:

ip.ex('import matplotlib as mat')
ip.ex('import matplotlib.pyplot as plt')
ip.ex('import numpy as np')
ip.ex('import pupynere as pu')
ip.ex('import g')
ip.ex('import bsite')
ip.ex('import csvf')
ip.ex('import pandas as pa')
ip.ex('import pickle as pk')
ip.ex('import mathex as mathex')
ip.ex('import os as os')
ip.ex('import re as re')
ip.ex('import scipy as sp')
ip.ex('import mpl_toolkits.basemap as bmp')
ip.ex('from mpl_toolkits.basemap import cm')

如果我在ipythonshell中使用python,那么在我启动ipython时将直接加载这些模块,但是如果我有一个python脚本,例如,ba_plot.py用于绘制一些绘图。我在ipython中通过交互方式调试了脚本,但是我想在shell终端中运行它,比如:

^{pr2}$

但在此之前,每次我需要在ba_plot.py文件的开头复制以下内容:

import matplotlib as mat
import matplotlib.pyplot as plt
import numpy as np
import pupynere as pu
import g
import bsite
import csvf
import pandas as pa
import pickle as pk
import mathex as mathex
import os as os
import re as re
import scipy as sp
import mpl_toolkits.basemap as bmp
from mpl_toolkits.basemap import cm

因为否则它会抱怨找不到模块。那么,有没有什么方法可以避免这样做呢?在python脚本的开头包含一些头文件,同时在头文件中导入所有这些模块?通过这种方式,我只需要在python脚本的开头添加online。在


Tags: 模块pyimportipre脚本matplotlibos
2条回答

有一个依赖于外部启动脚本的脚本是不好的做法。做这些导入是你应该做的。在

如果您定期导入一组相当大的内容,可以通过将导入集中在一个文件中(例如,将其称为common_imports.py),然后从该文件导入所有内容(from common_imports import *)来简化它。那就成了唯一的一行了。不过,我还是希望看到明确的进口。在

(另一个注意事项:在import os as os中,as os是完全多余的。)

您需要修改site.py。每次运行Python程序时都会运行这个脚本。对我来说,它生活在/usr/lib/python2.7/site.py

正如克里斯·摩根所说,这是非常糟糕的做法,我强烈建议你避免。在

相关问题 更多 >

    热门问题