Python如何从任何文件夹导入模块

版权声明:转载请标明出处 https://blog.csdn.net/qq_41556318/article/details/84889928

从 "第050讲:模块:模块就是程序"这一讲中,我们学习了模块的相关知识,但是我们注意到了一个问题:

如果我们要写一个模块,并且可以在IDLE中顺利导入这个模块,我们必须安装Python的目录下新建一个模块的 .py 文件,

我们说过:为了使我们的 IDLE 能够顺利的找到这个模块,我们这个模块的位置应该跟我们调用的程序在同一个文件夹下

这样就比较麻烦了,因为我们希望把自己做的项目的文件统一保存在一个文件夹下,也不希望Python的安装目录被破坏。

那么,我们就需要学习如何从我们想要的文件夹中导入模块的方法。

其实很简单:

我们首先要知道,为什么IDLE能够顺利找到在安装Python的目录下的模块文件呢:

我们调用 sys,并查看一下路径就知道了:

>>> import sys
>>> sys.path
['', 'D:\\ProgramFiles\\Anaconda3\\Lib\\idlelib', 'D:\\ProgramFiles\\Anaconda3\\python35.zip', 'D:\\ProgramFiles\\Anaconda3\\DLLs', 'D:\\ProgramFiles\\Anaconda3\\lib', 'D:\\ProgramFiles\\Anaconda3', 'D:\\ProgramFiles\\Anaconda3\\lib\\site-packages', 'D:\\ProgramFiles\\Anaconda3\\lib\\site-packages\\Sphinx-1.4.6-py3.5.egg', 'D:\\ProgramFiles\\Anaconda3\\lib\\site-packages\\win32', 'D:\\ProgramFiles\\Anaconda3\\lib\\site-packages\\win32\\lib', 'D:\\ProgramFiles\\Anaconda3\\lib\\site-packages\\Pythonwin', 'D:\\ProgramFiles\\Anaconda3\\lib\\site-packages\\setuptools-27.2.0-py3.5.egg']

默认的路径均为Python 的安装目录(我的Python是使用Anaconda安装的,大家使用官方Python安装的路径也大致相同)

只有在 sys.path 包含的路径下的模块,我们才可以直接调用,那么解决方法就很简单了。

如果我们在桌面上新建了一个 hello.py 文件,我们在里面定义一个 hi() 函数,当我按下 Ctrl + S 将这个文件保存起来的时候,这就是一个独立的Python 模块了,

扫描二维码关注公众号,回复: 4418721 查看本文章
def hi():
        print('Hi, everyone!')

我们想在IDLE里直接调用桌面上的这个模块,如果直接调用,就会报错

>>> import hello
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    import hello
ImportError: No module named 'hello'

但是我们结合上面的原理,我们可以这样做:

>>> import sys
>>> sys.path.append("C:\\Users\\XiangyangDai\\Desktop")
>>> import hello
>>> hello.hi()
Hi, everyone!

先把需要导入模块所在的路径添加到 sys.path 中,然后就可以顺利导入该模块了。

猜你喜欢

转载自blog.csdn.net/qq_41556318/article/details/84889928