python 引入 导入 自定义模块, python 引入 导入 外部文件python
项目中想使用之前的代码,或者什么样的需求导致你须要导入外部的包
若是是web 下,好比说django ,那么你新建一个app,把你须要导入的说用东东,都写到这个app中,而后在setting中的app也配上基本就ok了
若是是本地代码,能够有几种方式,
一、这种最简单,也可能最不实用,将你的外部文件放到跟须要调用外部文件的文件同一个包下,同一目录
folder
------toinvoke.py
------tobeinvoded.py
这样在toinvoke.py 中引入
import toveinvoked 或 from tobeinvoked import *
便可
二、你的其余文件不是单个文件,或者不能如上所说放到同一目录下,而是在不一样目录中,子目录
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 *
便可
三、同理,若是是以下的状况,folderB中的模块要调用folderA中的模块,方法同上,有什么改变,你已经知道了
folderA
------tobeinvoded.py
------tobeinvodedA.py
------tobeinvodedB.py
------tobeinvodedC.py
folderB
--------toinvoke.py
这样在toinvoke.py 中引入
import folder.toveinvoked 或 from folder.tobeinvoked import *
便可
四、将要被调用的代码拷贝到$PYTHONHOME$\Lib\site-packages 下面,这个就跟Eclipse插件安装差很少
五、在$PYTHONHOME$\Lib\site-packages 下面新建一个.pth文件,好比说是MyPackage.pth,里面的内容是你的包的绝对路径好比:E:/PythonPrj
那么,在E:/PythonPrj下的全部包均可以按照包所在的相对路径引入,这个跟Eclipse插件安装的link 方式差很少
六、跟上面的差很少,也能够加个环境变量,这个就很少说了
总结、看看Python的包搜索路径
Python会在如下路径中搜索它想要寻找的模块:
1. 程序所在的文件夹
2. 标准库的安装路径
3. 操做系统环境变量PYTHONPATH所包含的路径
咱们刚刚作的都是在这三条的基础上搞得。
转载于:https://www.cnblogs.com/Harry-Lord/p/4002867.htmlweb