圖文詳解Python中模塊或py文件導(dǎo)入(超詳細(xì)!)
一、前言
聽(tīng)說(shuō)python很流行,因?yàn)橛泻芏嗄K資源,而且導(dǎo)入模塊,操作和理解起來(lái)很簡(jiǎn)單。所以在這里記錄一下學(xué)習(xí)python的過(guò)程,我相信最重要的環(huán)節(jié)就是導(dǎo)入第三方模塊了
二、python項(xiàng)目中導(dǎo)入模塊(py文件)的幾種方式
1、直接將py文件放到默認(rèn)的庫(kù)位置(特點(diǎn):高效)
在本地路徑:d:\\Z_D\\PD_P\\Python\\項(xiàng)目1目錄下運(yùn)行 test.py 文件代碼如下:
import sys print(sys.path)
運(yùn)行結(jié)果就是打印出所有默認(rèn)的庫(kù)文件存放路徑:
['d:\\Z_D\\PD_P\\Python\\項(xiàng)目1', 'D:\\Z_D\\PD\\python\\Python310\\python310.zip', 'D:\\Z_D\\PD\\python\\Python310\\DLLs', 'D:\\Z_D\\PD\\python\\Python310\\lib', 'D:\\Z_D\\PD\\python\\Python310', 'D:\\Z_D\\PD\\python\\Python310\\lib\\site-packages']
整理一下就是
d:\\Z_D\\PD_P\\Python\\項(xiàng)目1
D:\\Z_D\\PD\\python\\Python310\\python310.zip
D:\\Z_D\\PD\\python\\Python310\\DLLs
D:\\Z_D\\PD\\python\\Python310\\lib
D:\\Z_D\\PD\\python\\Python310
D:\\Z_D\\PD\\python\\Python310\\lib\\site-packages
把創(chuàng)建的 my1.py 文件放在 D:\\Z_D\\PD\\python\\Python310\\lib\\site-packages 中:這里 my1.py 文件演示的代碼如下:
def testfunction(): print("我是 D:\Z_D\PD\python\Python310\Lib\\\ site-packages 的 my1.py \ 中的 testfunction 函數(shù)")
然后執(zhí)行 test.py 文件的測(cè)試代碼。嘗試導(dǎo)入 my1.py 文件:
import my1 my1.testfunction()
可以看到執(zhí)行結(jié)果(圖片):
導(dǎo)入成功!
2、將文件放到創(chuàng)建的庫(kù)位置(特點(diǎn):方便管理)
上面講到我們可以直接把py文件放置到D:\\Z_D\\PD\\python\\Python310\\lib\\site-packages 路徑下,但是這么做,顯得很亂,也不便于我們管理,所以我們創(chuàng)建一個(gè)文件夾,用于放置自己的創(chuàng)建的py文件模塊:
把創(chuàng)建的 my2.py 文件放在D:\桌面\自己創(chuàng)建的庫(kù)文件夾 中:這里 my2.py 文件演示的代碼如下:
def testfunction(): print("D:\桌面\自己創(chuàng)建的庫(kù)文件夾\my2.py中的 testfunction 函數(shù)")
然后執(zhí)行 test.py 文件的測(cè)試代碼。嘗試導(dǎo)入 my2.py 文件:
import sys sys.path.append('D:\桌面\自己創(chuàng)建的庫(kù)文件夾') import my2 my2.testfunction()
可以看到執(zhí)行結(jié)果(圖片):
導(dǎo)入成功!
3、將模塊(模塊包含很多py文件)使用pip安裝到python庫(kù)中(特點(diǎn):安裝麻煩,使用時(shí)方便)
創(chuàng)建一個(gè)工作區(qū),工作區(qū)下新建一個(gè) ShareClass 文件夾 ,文件夾中新建 helloworld.py 文件 和一個(gè)空白 __init__.py 文件
編寫自己的模塊代碼,這里 helloworld.py 文件演示代碼如下:
def testfunction(): print("helloworld.py的 testfunction 函數(shù)")
效果是這樣:
在工作區(qū)下新建一個(gè)setup.py文件,注意該文件是和ShareClass文件夾 同級(jí)目錄
這里的 setup.py文件代碼如下:
import setuptools setuptools.setup( name="ShareClass", version="1.0", author="Beall", author_email="beallhuang@163.com", description="", long_description="ShareClass", long_description_content_type="ShareClass", packages=setuptools.find_packages(), classifiers=[ "Programming Language :: Python :: 3", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ], )
這里用到了 setuptools 模塊,如果沒(méi)有,要進(jìn)行安裝,安裝方法自行百度。
效果是這樣:
接下來(lái),我們進(jìn)行pip安裝流程:
在工作區(qū)使用終端執(zhí)行命令,使用setup.py腳本生成壓縮包
python .\setup.py sdist
執(zhí)行的結(jié)果就是生成了兩個(gè)文件夾:
然后執(zhí)行命令,使用pip安裝到本地庫(kù)中:
pip install .\dist\ShareClass-1.0.tar.gz
執(zhí)行結(jié)果就是安裝成功:
然后執(zhí)行文件 test.py 的測(cè)試代碼。嘗試導(dǎo)入模塊ShareClass中的helloworld.py:
from ShareClass import helloworld helloworld.testfunction()
可以看到執(zhí)行結(jié)果(圖片):
創(chuàng)建模塊,安裝,并在項(xiàng)目中導(dǎo)入成功!
4、使用系統(tǒng)變量永久生成指定python庫(kù)位置(特點(diǎn):沒(méi)有缺點(diǎn),哈哈,推薦這個(gè))
上面第一種方式,放在系統(tǒng)目錄不方便管理,文件類型多,目錄深,所以找起來(lái)很不方便
第二種方式,放在指定位置,確實(shí)簡(jiǎn)單,但是使用時(shí),要額外加入下面的代碼
import sys sys.path.append('D:\桌面\自己創(chuàng)建的庫(kù)文件夾')
對(duì)于有代碼潔癖的人來(lái),十分別扭。
第三種方式,將模塊打包安裝,雖然使用起來(lái)和第二種相同,也沒(méi)有別扭的感覺(jué),但是每次都要安裝,這樣模塊多了就很麻煩,也很不好管理
所以推薦方式4,相當(dāng)于在方式二的基礎(chǔ)上升級(jí)了一下。廢話不多說(shuō)了,直接操作:
如下圖,我的電腦,右鍵屬性=》高級(jí)系統(tǒng)設(shè)置=》環(huán)境變量=>新建,填的內(nèi)容如下,變量名一定要填寫正確,建議復(fù)制!
PYTHONPATH
D:\桌面\永久的py庫(kù)文件夾
然后檢查是否添加成功,效果如下圖
運(yùn)行一下,測(cè)試代碼如下:
import my4 my4.myfunction()
如果是在VScode中。運(yùn)行后結(jié)果如下:
遇到這個(gè)問(wèn)題,是VScode問(wèn)題,這個(gè)不重要,要解決很簡(jiǎn)單:重啟
不過(guò)這里就不要是重啟了。在項(xiàng)目目錄打開CMD運(yùn)行指令:python test.py
運(yùn)行結(jié)果如下:
導(dǎo)入成功!
三、項(xiàng)目中的python文件導(dǎo)入
1、同級(jí)文件導(dǎo)入
同級(jí)目錄創(chuàng)建my.py 文件:這里 my.py 文件演示的代碼如下:
def myfunction(): print("helloworld.py的 myfunction 函數(shù)")
然后執(zhí)行 test.py 文件的測(cè)試代碼。嘗試導(dǎo)入 my2.py 文件:
import my my.myfunction()
可以看到執(zhí)行結(jié)果(圖片):
導(dǎo)入成功!
2、導(dǎo)入文件夾中py文件
同級(jí)目錄創(chuàng)建my.py 文件:這里 my.py 文件演示的代碼如下:
def myfunction(): print("my.py的 myfunction 函數(shù)")
=========================================================================
然后執(zhí)行 test.py 文件的測(cè)試代碼。嘗試導(dǎo)入 my2.py 文件:
#導(dǎo)入my文件 import 文件夾.my as my my.myfunction()
或者:
#導(dǎo)入my文件 from 文件夾 import my my.myfunction()
或者
#導(dǎo)入my文件中所有的函數(shù) from 文件夾.my import * myfunction()
或者
#僅僅導(dǎo)入my文件中的myfunction函數(shù) from 文件夾.my import myfunction myfunction()
=========================================================================
可以看到執(zhí)行結(jié)果(圖片):
導(dǎo)入成功!
總結(jié)
到此這篇關(guān)于Python中模塊或py文件導(dǎo)入的文章就介紹到這了,更多相關(guān)Python模塊或py文件導(dǎo)入內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談pandas中DataFrame關(guān)于顯示值省略的解決方法
下面小編就為大家分享一篇淺談pandas中DataFrame關(guān)于顯示值省略的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04Python編程快速上手——瘋狂填詞程序?qū)崿F(xiàn)方法分析
這篇文章主要介紹了Python瘋狂填詞程序?qū)崿F(xiàn)方法,結(jié)合具體案例形式分析了Python填詞算法相關(guān)的文件讀寫、正則匹配、數(shù)據(jù)遍歷等操作技巧,需要的朋友可以參考下2020-02-02Scrapy模擬登錄趕集網(wǎng)的實(shí)現(xiàn)代碼
這篇文章主要介紹了Scrapy模擬登錄趕集網(wǎng)的實(shí)現(xiàn)代碼,本文通過(guò)代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07Python輸入圓半徑,計(jì)算圓周長(zhǎng)和面積的實(shí)現(xiàn)方式
這篇文章主要介紹了Python輸入圓半徑,計(jì)算圓周長(zhǎng)和面積的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12Python的Flask框架中@app.route的用法教程
這篇文章主要介紹了Python的Flask框架中@app.route的用法教程,包括相關(guān)的正則表達(dá)式講解,是Flask學(xué)習(xí)過(guò)程當(dāng)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-03-03python 獲取當(dāng)天凌晨零點(diǎn)的時(shí)間戳方法
今天小編就為大家分享一篇python 獲取當(dāng)天凌晨零點(diǎn)的時(shí)間戳方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05Python實(shí)戰(zhàn)之異步獲取中國(guó)天氣信息
這篇文章主要介紹了如何利用Python爬蟲異步獲取天氣信息,用的API是中國(guó)天氣網(wǎng)。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動(dòng)手試一試2022-03-03Tensorflow訓(xùn)練模型越來(lái)越慢的2種解決方案
今天小編就為大家分享一篇Tensorflow訓(xùn)練模型越來(lái)越慢的2種解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02