NJU1healer的个人博客分享 http://blog.sciencenet.cn/u/NJU1healer

博文

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

已有 3630 次阅读 2020-9-23 16:25 |个人分类:Python|系统分类:科研笔记

       如果我们要写一个模块,并且可以在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 模块了,


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 中,然后就可以顺利导入该模块了。

【参考】

https://blog.csdn.net/qq_41556318/article/details/84889928

点滴分享,福泽你我!Add oil!



https://blog.sciencenet.cn/blog-3428464-1251779.html

上一篇:PyTorch中Tensor、print(f"...")
下一篇:Pytorch中的TensorDataset与DataLoader
收藏 IP: 103.149.249.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

全部作者的其他最新博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-5 11:04

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部