如何在Python中导入模块?

时间:2015-06-30 15:07:37

标签: python

我已经在自己的.py文件中编写了一个类,我希望能够在其他文件中使用它。我在panel.py中保存了文件C:\Python27\Lib,然后我尝试在ipython中使用import panel,我收到了以下错误ImportError: No module named panel。我以为我可能已将该类保存在错误的目录中,因此我尝试将文件保存在C:\Python27,这在我尝试导入文件时也无效。我究竟做错了什么?如果它在我编写的类中有用,我删除了该类所做的所有不应影响任何内容的内容。

import statsmodels.formula.api as sm
import pandas as pd
import numpy as np
import scipy as sp
from math import sqrt
import re


class PanelModel:


    def __init__(self, formula, effects = "random", time_fe = False, entity_fe = False, robust = False, data = None):
        pass

    def balanceChecker(self):
        pass

    def fit(self):
        pass

    def randomEffects(self):
        pass

    def fixedEffects(self):
        pass

    def betasREBalanced(self):
        pass

    def summary(self):
        pass

我正在运行python 2.7.9和ipython 3.0.0

4 个答案:

答案 0 :(得分:0)

来自https://docs.python.org/2/tutorial/modules.html

当导入名为spam的模块时,解释器首先搜索具有该名称的内置模块。如果未找到,则会在变量sys.path给出的目录列表中搜索名为spam.py的文件。 sys.path从这些位置初始化:

  • 列出包含输入脚本(或当前目录)的目录。 PYTHONPATH(目录名列表,语法与shell变量PATH相同)。

  • 列出包含输入脚本(或当前目录)的目录。 PYTHONPATH(目录名列表,语法与shell变量PATH相同)。

  • 列出与安装相关的默认值。

初始化后,Python程序可以修改sys.path。包含正在运行的脚本的目录位于搜索路径的开头,位于标准库路径之前。这意味着将加载该目录中的脚本,而不是库目录中的同名模块。除非有意更换,否则这是一个错误。有关详细信息,请参阅标准模块一节。

答案 1 :(得分:0)

我猜你正在寻找的是动态导入。

试试这个。看看它是否有效

importlib.import_module(moduleName)

答案 2 :(得分:0)

最简单的解决方案是确保您与所编写的模块位于同一目录中。从ipython提示符中键入ls,查看是否列出了panel.py

其他可能的解决方案是将您的模块移到sys.path中列出的位置或将模块的路径追加到sys.path

答案 3 :(得分:0)

谢谢大家的快速和非常有用的建议。我选择import sys然后选择print sys.path并将我的文件保存在其中一个目录中,这些目录需要取消隐藏我的AppData文件夹。