这句代码sys.path .append('f:/python'),我们改变了sys.path,解释器在f:/python中查找模块,一般来说,我们可能不想这么做,在理想情况下,一开始sys.path本身就应该包括正确的目录,有两种方法可以做到这一点,下面,是我学习的过程:
1、让你的模块可用:
在目录C:\Python32\Lib\site-packages(如果安装目录在C盘)下,添加文件:another_hello.py,代码如下:
1 #another_hello.py 2 def hello(): 3 print("hello world 0") 4 5 def test(): 6 hello() 7 8 if __name__=='__main__': 9 test()
在python shell中,会生成another_hello.cpython-32.pyc文件
import another_hello >>> another_hello .hello ()
只要将模块放入类似site-packages这样的目录中,所有程序就能将其导入了。
2、告诉编译器到哪里找?
"将模块放置在正确的位置"这个解决方案对于以下几种情况可能不适用:
不希望将自己的模块填满Python解释器的目录;
没有在Python解释器目录中存储文件的权限;
想将模块放在其他地方。
想将模块放在其他地方,那么就要告诉解释器去哪里去找。你之前已经看到了一种方法,就是编辑目录sys.path,但这不是一种通用的方法。标准的实现方式是在PYTHONPATH环境变量中包含模块所在的目录。
环境变量设置如下:PYTHONPATH =F:\pythonpath
#hello5.py def hello(): print("hello world ByPYTHONPATH") def test(): hello() if __name__=='__main__': test()
3、使用.pth来来实现
在Python/Lib/site-package目录下创建一个MyModule.pth文件,其中内容为自定义的模块所在的路径。
这样Project目录下的python文件就可以被找到了。