在Python中运行自定义包或模块

来源:互联网 发布:eplan2.6破解软件 编辑:程序博客网 时间:2024/05/19 14:39

在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

原创粉丝点击