当引用模块时,编译器会先在当前目录,接着去sys.path、Python的安装目录去寻找你引用的模块,如果没有的话,就会报错。
第一种情况,你的模块和你要使用的模块在同一目录下。Hello.py是一个模块,里面有一个打印Hello, World的方法Hello()。test.py是一个测试程序,它将引用Hello.py中的hello()方法。因为它和模块在同一目录,所以可以直接引用。
第二种情况,模块在别的地方。
方法一:先引用sys,对sys.path进行修改,其实就是将模块的路径加到sys.path中。
方法二:就是将路径加入到环境变量中去,这个是永久的,你可以新建一个专门存放模块的文件夹,把这个文件夹的路径加入到环境变量中去,可以一次劳动,永不麻烦,同时也便于管理。
然后有一个文件test.py
。现在把他们放在同一个目录下,这样,在test.py
中,就可以直接导入这个模块:
为了测试我把它们都放在桌面上,然后用IDLE,选择File->Open去打开test.py
,然后按F5运行这个文件,可以看到,它输出了结果。
将一揽子的模块(.py文件)放在一个文件夹里面,再添加一个__init__.py
,这样这个文件夹就成为了一个包。可以将这个包放入python安装目录的../Lib/site-packages/
中,这样就可以导入这个包中的模块使用了
仍然在桌面上(为了和处于site-packages/pck下的模块区别路径),
输出结果与方法一相同。
注意!上面的show
方法,因为我是直接导入模块,所以“包名+模块名”的前缀要写完整,否则可能找不到show函数
方法三和方法二差不多,只不过方法三中,打的包pck不放在site-packages
下,而是放在和test.py
同一目录下,引用方法相同。
现在,我将包pck放在C盘下:C:/pck
,那么我可以在test.py
中写如下代码:
甚至,可以不用包,我直接将helloworld.py
文件放在C盘下,然后在test.py
中写
首先,在IDLE环境中,用如下代码来获取可放置.pth文件的路径
显示放置.pth的搜索路径
我选择后者作为放置路径。
创建一个测试包kylinpck854848
(这个包名我是随便起的(⊙o⊙)…),放置在任意路径下(为了测试用)
然后建立一个.pth文件
接下来打开IDLE,因为是包,所以使用from import
语句来使用模块
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。