автоматически импортировать модуль при запуске скрипта python? - PullRequest
3 голосов
/ 24 ноября 2011

Я думаю, что другие могут спросить об этом раньше, но я не могу найти это. У меня вопрос, у меня есть эти заявления в моем .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')

Тогда Если я использую python в оболочке ipython, эти модули будут загружены непосредственно при запуске ipython, но если у меня есть скрипт на python, например, ba_plot.py, используемый для создания некоторых графиков. Я отладил сценарий интерактивным способом в ipython, но затем я хочу запустить его в терминале оболочки, например:

chaoyue@chaoyue-Aspire-4750:~$  python ba_plot.py

но перед этим каждый раз, когда мне нужно скопировать в начале 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, в то время как в заголовочном файле все эти модули импортированы? Таким образом, мне нужно только добавить on-line в начале моего скрипта Python.

Ответы [ 2 ]

4 голосов
/ 24 ноября 2011

Это плохая практика иметь скрипт, который зависит от внешнего скрипта запуска, чтобы он работал.Выполнение этих импортов - это , как вы должны это делать.

Вы можете упростить это, если регулярно импортируете довольно большой набор вещей, централизовав импорт в файл (назовите его common_imports.py,например), а затем импортировать все из этого (from common_imports import *).Затем это становится только одной строкой. Однако я все равно предпочел бы видеть явный импорт.

(Другое примечание: в import os as os, as os совершенно лишний.)

2 голосов
/ 24 ноября 2011

Вам необходимо изменить site.py .Этот скрипт запускается каждый раз, когда запускается программа Python.Для меня это живет в /usr/lib/python2.7/site.py

Как говорит Крис Морган, это ужасно плохая практика, и я настоятельно рекомендую вам ее избегать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...