在Python中运行自定义包或模块(The way of Import module or package inpython):
一个自定义的文件夹下有 .py 文件,like:
E:\my_package\
my1.py
my2.py
搜索路径顺序:
①当前目录,程序所在的文件夹,
打开运行my1.py,当前目录就E:\my_package\my1.py
②sys.path列表
如果PYTHONPATH环境变量存在sys.path会加载此变量指定的目录。模块的搜索路径都放在了sys.path列表中,如果sys.path中没有含有自己的模块或包的路径,可以动态的(sys.path.apend)即可(这段来自http://m.blog.csdn.net/hyholine/article/details/8581740)
在Python中添加自定义模块路径
参考http://changfengmingzhi.blog.163.com/blog/static/167105288201431392522454/##1
方法一:
1. >>> import sys
>>> sys.path.append(”要运行.py的所在包”)
写完这行的话,需要立即使用,如:.pyname. function,否则导入的文件中的变量和function被覆盖掉,而在后面找不到。(来自http://blog.csdn.net/wangyaqi123/article/details/39433783)
尝试:
>>> sys.path.append("E:\my_package\my_1.py")
>>> my_1.printme("1234")
NameError: name 'my_1' is not defined
>>> printme("1234")
NameError: name 'printme' is not defined
>>> sys.path.append("E:\my_package\
")
>>> my_1.printme("1234")
NameError: name 'my_1' is not defined
很多方法都有这个,但不知道为啥?我试了不好使。
方法二:在site-packages文件中创建.pth文件
一个自定义的文件夹下有 .py 文件,like:
E:\my_package\
my1.py
my2.py
want to import my1.py, do step likethis:
1)在python中运行
>>> import sys
>>> sys.path
['','C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35\\Lib\\idlelib',……'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35\\lib\\site-packages']
2)得到环境变量中的目录,找到并打开site-packages文件夹,使用pth文件,在 site-packages文件中创建.pth文件,将模块的路径写进去,一行一个路径。
① .pth文件的创建,就先建一个(.txt)文本文档或(.doc),(.docx)都行 » 打开文档,写E:\my_package 或E:\\my_package » 保存 » 重命名 由 xxx.txt 变xxx.pth
3)检查是否创建成功
>>> import sys
>>> sys.path
['','C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35\\Lib\\idlelib',……'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35\\lib\\site-packages','E:\\ my_package ']
4)不要太高兴,因为它只能引入my_package文件夹下的.py文件,
>>> import my1
5)以下会报错
E:\ my_package\tensorflow1\models\image\cifar10
> >> importtensorflow1.models.image.cifar10.cifar10_input
ImportError: No module named'tensorflow1'
在Python中运行自定义模块(已添好路径,路径之外会报错)
E:\my_package\
my1.py
my2.py
my\
my3.py
__init__.py
myw\
my4.py
尝试ok的:
1 my2.py中
> >> import my1 #.py平级: my1.py my2.py
> >> function
> >> from my.my3 import * #.py和包平级: my2.py my
> >> function
2 my4.py中
> >> from my.my3 import * #不平级:
> >> function