我有一个包含库的python .py文件,我希望在启动时将其加载到我的环境中,而不必每次都单独加载它。
E.g。我目前需要逐行加载numpy,matlab导入等,是不是可以从>>>中加载几个文件。提示。我试过运行python3<>但它不会工作。
这是我的.py文件,我做错了。
# Load libraries
import sys
#import OS
import pandas
from pandas.plotting import scatter_matrix
import matplotlib.pyplot as plt
from sklearn import model_selection
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
from sklearn.metrics import accuracy_score
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import SVC
import pandas as pd
from datatime import datetime
import matplotlib.pyplot as plt
import statsmodels.api as sm
from sklearn import datasets
import scipy.stats as stats
import pylab
答案 0 :(得分:5)
您正在寻找的内容称为启动文件。
在继续之前:你真的应该考虑使用jupyter
或至少使用ipython
部分。它具有更强大的功能,可用于设置自定义交互式环境 - 以及更强大的交互式环境。例如,您可以指定一个完整的脚本目录而不是单个脚本或不同的命名配置文件,或者您甚至可以在首次使用时自动导入模块,而不是等待所有模块加载,无论您是否需要他们与否 - 而且这只是表面上的问题。
但是,让我们假设您坚持使用默认的互动环境。
环境变量PYTHONSTARTUP
允许您指定仅在交互模式下运行的启动文件:
如果这是可读文件的名称,则在以交互模式显示第一个提示之前,将执行该文件中的Python命令。该文件在执行交互式命令的同一命名空间中执行,以便在交互式会话中无需限定地使用在其中定义或导入的对象。您还可以更改此文件中的提示
sys.ps1
和sys.ps2
以及摘要sys.__interactivehook__
。
因此,在您的主目录中创建一个文件,virtualenv
或其他任何看似合适的文件:
import sys
import os
import pandas
# etc.
然后将环境变量设置为指向该文件。当然,确切的方法取决于您所使用的平台(以及您正在使用的shell),以及您存储文件的位置,以及您是否希望每次登录时都自动执行该操作。
举个例子,让我们说你在Linux上,使用bash,你没有使用虚拟环境,你把文件放在你的主目录中.pythonstartup.py
,并且你希望它在每次登录时发生。然后你将它放在你的个人资料中:
export PYTHONSTARTUP="$HOME/.pythonstartup.py"
现在,启动一个新shell,每次运行Python时,它都会启动所有这些导入:
$ python3
>>> print(sys.version_info)
sys.version_info(major=3, minor=6, micro=4, releaselevel='final', serial=0)