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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM