python引入导入自定义模块和外部文件

参考:http://blog.csdn.net/devil_2009/article/details/15816237

项目中想使用以前的代码,或者什么样的需求致使你需要导入外部的包

如果是web 下,比如说django ,那么你新建一个app,把你需要导入的说用东东,都写到这个app中,然后在setting中的app也配上基本就ok了

如果是本地代码,可以有几种方式,

1、这种最简单,也可能最不实用,将你的外部文件放到跟需要调用外部文件的文件同一个包下,同一目录

folder

------toinvoke.py

------tobeinvoded.py

这样在toinvoke.py 中引入

import toveinvoked 或 from tobeinvoked import *

即可

2、你的其他文件不是单个文件,或者不能如上所说放到同一目录下,而是在不同目录中,子目录

folder

------tobeinvodedA.py

------tobeinvodedB.py

------tobeinvodedC.py

toinvoke.py

这种情况,现在folder 下新建一个__init__.py 的空文件,此时的folder不再是一个普通的文件夹,而是一个包 package,现在像这样

folder #文件夹 现在的性质为一个python包package

------__init__.py

------tobeinvoded.py

------tobeinvodedA.py

------tobeinvodedB.py

------tobeinvodedC.py

toinvoke.py

这样在toinvoke.py 中引入

import folder.toveinvoked 或 from folder.tobeinvoked import *

即可

3、同理,如果是如下的情况,folderB中的模块要调用folderA中的模块,方法同上,有什么改变,你已经知道了

folderA

------tobeinvoded.py

------tobeinvodedA.py

------tobeinvodedB.py

------tobeinvodedC.py

folderB

--------toinvoke.py

这样在toinvoke.py 中引入

import folder.toveinvoked 或 from folder.tobeinvoked import *

即可

4、将要被调用的代码拷贝到$PYTHONHOME$\Lib\site-packages 下面,这个就跟Eclipse插件安装差不多

5、在$PYTHONHOME$\Lib\site-packages 下面新建一个.pth文件,比如说是MyPackage.pth,里面的内容是你的包的绝对路径比如:E:/PythonPrj

那么,在E:/PythonPrj下的所有包都可以按照包所在的相对路径引入,这个跟Eclipse插件安装的link 方式差不多

6、跟上面的差不多,也可以加个环境变量,这个就不多说了

总结、看看Python的包搜索路径

Python会在以下路径中搜索它想要寻找的模块:

1. 程序所在的文件夹

2. 标准库的安装路径

3. 操作系统环境变量PYTHONPATH所包含的路径

将自定义库的路径添加到Python的库路径中去,有如下两种方法:

1. 动态的添加库路径。在程序运行过程中修改sys.path的值,添加自己的库路径

import sys

sys.path.append(r‘your_path‘)

2. 在Python安装目录下的\Lib\site-packages文件夹中建立一个.pth文件,内容为自己写的库路径。示例如下

E:\\work\\Python\\http

E:\\work\\Python\\logging

时间: 2025-01-04 21:36:52

python引入导入自定义模块和外部文件的相关文章

vscode如何配置debug,python正则表达式如何匹配括号,关于python如何导入自定义模块

关于vscode如何配置debug的问题: 1.下载安装好python,并且配置好 环境变量 2.https://www.cnblogs.com/asce/p/11600904.html 3.严格按照上面进行操作的话,用vscode直接打开  文件夹即可 (.vscode文件中的launch.json文件其实就是指导软件在debug时如何做,可以自己生成,不用自定义设置) python正则表达式如何匹配括号,中括号一类的问题: 给括号加上[ ] 例如:abc(123)def  要匹配括号中的数字

windows 下Python import 导入自定义模块

周末在家研究这个东西,则找到解决方案. 费话少说,上代码 1 #定义一个自定义的函数,如下 2 #函数的名称必须是字母和数字的组合,不能用数字开头 3 #函数名后用小括号括住入参,可以用逗号分隔多个 4 #如果有返回值用return ,如果没有返回值,默认返回None 5 6 def PanDuanFenShu(score): 7 if 100 >= score >= 90: 8 print("A") 9 if 90 > score >= 80: 10 prin

python解决导入自定义库失败: ModuleNotFoundError: No module named 'MyLib'

python安装目录:...\python_3_6_1_64bit 新建文件:chenyeubai.pth,写入库所在的绝对路径E:\workSpace\my_code\learn\myLib 安装路径下的.pth文件会在运行时将文件中路径写入path python解决导入自定义库失败: ModuleNotFoundError: No module named 'MyLib' 原文地址:https://www.cnblogs.com/chenyuebai/p/8416706.html

Python如何用dom模块生成XML文件

Python如何用dom模块生成XML文件呢? 主要方法三点: 首先.生成XML节点(node) createElement("node_name") 然后.给节点添加属性值(Attribute) node.setAttribute("att_name", "arr_value") 最后.节点的标签值(data) createTextNode("node_value") 其中第1.3点在创建完节点(节点值)之后,还需使用下面的

python如何导入自定义文件和模块全部方法

项目中想使用自定义python文件(本地代码) 有6种方式, 1.这种最简单,也可能最不实用,将你的外部文件放到跟需要调用外部文件的文件同一个包下,同一目录 folder------toinvoke.py------tobeinvoded.py 这样在toinvoke.py 中引入 import toveinvoked 或 from tobeinvoked import * 即可 2.你的其他文件不是单个文件,或者不能如上所说放到同一目录下,而是在不同目录中,子目录 folder------to

python导入自定义模块

一.查看自定义模块路径是否包含在sys中 >>> import sys>>> sys.path 若不包含,可用sys.path.append('/xxx/xx/xx')添加. 二.导入 import  XXX 导入过程,自定义模块就运行了.自定义模块中包含函数,可用XXX.XX(xx)调用. 最简单的办法是用 .pth 文件来实现.Python 在遍历已知的库文件目录过程中,如果见到一个 .pth 文件,就会将文件中所记录的路径加入到 sys.path 设置中,这样 .

hadoop streaming 中跑python程序,自定义模块的导入

今天在做代码重构,以前将所有python文件放到一个文件夹下,上传到hadoop上跑,没有问题:不过随着任务的复杂性增加,感觉这样甚是不合理,于是做了个重构,建了好几个包存放不同功能的python文件,历程如下: 1. 刚开始的时候,在IDE里搞,点击运行,正确.非常赞: 2. 然后搬到服务器上搞,出现了这样的问题: ImportError: no module named XXX 啊,看样子是包引用中路径不对,于是找文章解决: python中,每个py文件被称之为模块,每个具有__init__

python开发ansible自定义模块

ansible版本2.7 pip install ansible==2.7 先导出环境变量指出 我们自定义模块的目录. 我存放的目录 export ANSIBLE_LIBRARY=/home/makeit/mylib/ 也是就是把自己写的模块放到这个目录中,ansible在执行的时候会读取ANSIBLE_LIBRARY这个环境变量来查找对应的模块文件 模块名称.py 假设我们新写的模块文件名 mydownload.py 那么我们的模块名就是mydownload 使用的时候 ansible all

Python中引用自定义模块

学习了一小段时间的Python,始终停滞在简单的语法上,不能真正体会到Python的强大之处.今天学习了自定义模块的引用方法.当引用模块时,编译器会先在当前目录,接着去sys.path.Python的安装目录去寻找你引用的模块,如果没有的话,就会报错. 第一种情况,你的模块和你要使用的模块在同一目录下.Hello.py是一个模块,里面有一个打印Hello, World的方法Hello().test.py是一个测试程序,它将引用Hello.py中的hello()方法.因为它和模块在同一目录,所以可