python自定義安裝哪些不需要_【1】python模塊:自定義模塊的3種導入方式

一、定義

模塊就是用一堆的代碼實現了一些功能的代碼的集合,通常一個或者多個函數寫在一個.py文件里,而如果有些功能實現起來很復雜,那么就需要創建n個.py文件,這n個.py文件的集合就是模塊。如果不懂可以先看下面這篇博文:

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014318447437605e90206e261744c08630a836851f5183000

二、類型

1、標準模塊

python自帶的模塊,不需要安裝包,直接import就可以使用

2、第三方模塊

第三方開源模塊通常需要自己去下載

3、自定義模塊

自己寫的實現自己某些功能的.py文件集合

二、標準模塊

我們這里主要列舉幾個常用的標準模塊:

import random #隨機數模塊

print(random.randint(1,100))#在1-100里隨機取一個整數

print(random.uniform(1,900))#取一個小數,顧頭也顧尾

stus=['zhangsan','lisi','xiaohong']print(random.choice(stus))#隨機取一個元素

print(random.choice('sdfgadsgadfg'))print(random.sample(stus,2))#隨機取兩個元素

l=list(range(1,101))print('洗牌之前的',l)print(random.shuffle(l)) #洗牌,也就是打亂,沒有返回值,只能傳list,所以下面要在print一下

print('洗牌之后的',l)

三、第三方模塊

大牛們開源共享許多模塊也加快了大家開發的速度,許多開源模塊可以在這里找到

1、安裝第三發模塊

pip install xxx

2、手動安裝:

(1)下載.whl文件

pip install e:\\dowload\\pymysql.whl

(2)下載 .tar.gz文件

---解壓

---進入目錄執行 python setup.py install pymysql.tar.gz

3、列出當前裝了哪些模塊

pip list

4、導出當前已經安裝的模塊

freeze > 第三方模塊.txt

5、指定文件批量安裝模塊

pip install -r 第三方模塊.txt

四、python自定義模塊的導入方式

1、直接import

這里有個大前提,就是你的py執行文件和模塊同屬于同個目錄(父級目錄),如下圖:

1352084-20190802114148648-2012057398.png

main.py 和 pwcong模塊同在python目錄

執行文件為main.py

pwcong文件夾為一個模塊

我把pwcong模塊提供的函數寫在 __init__.py 里,里面只提供一個 hi 函數:

#pwcong 模塊的 __init__.py#-*- coding: utf-8 -*-

defhi():print("hi")

執行文件main.py直接import模塊:

#main.py#-*- coding: utf-8 -*-

importpwcong

pwcong.hi()

接著我們運行一下main.py可以看到命令行窗口輸出了一句 hi ,第一種方式完成。

2、通過sys模塊導入自定義模塊的路徑path

如果執行文件和模塊不在同一目錄,這時候直接import是找不到自定義模塊的。如下圖:

1352084-20190802114200266-1762432925.png

執行文件main.py在main目錄下

pwcong模塊在python目錄下

sys模塊是python內置的,因此我們導入自定義模塊的步驟如下:

先導入sys模塊

然后通過sys.path.append(path) 函數來導入自定義模塊所在的目錄。

使用sys.path.append()方法可以臨時添加搜索路徑,方便更簡潔的import其他包和模塊。這種方法導入的路徑會在python程序退出后失效。

使用sys.path.insert(0,'r'/Users/PycharmProjects/my_python/')定義搜索路徑的優先順序,序號從0開始,表示最大優先級,sys.path.insert()加入的也是臨時搜索路徑,程序退出后失效。

導入自定義模塊。

這時候 main.py 這樣寫:

#main.py#-*- coding: utf-8 -*-

importsys

sys.path.append(r"C:\Users\Pwcong\Desktop\python")importpwcong

pwcong.hi()

最后執行main.py文件,最終輸出 hi ,第二種方式完成。

3、在環境變量中找到自定義模塊

這個方法原理就是利用了系統變量,python會掃描path變量的路徑來導入模塊,可以在系統path里面添加。

模塊和執行文件目錄結構跟上圖一樣:

1352084-20190802114211596-1799087324.png

執行文件main.py在main目錄下

pwcong模塊在python目錄下

我們創建一個 module_pwcong.pth 文件,里面內容就是 pwcong模塊所在的目錄:

C:\Users\Pwcong\Desktop\python

將該 module_pwcong.pth 文件放到這里:

python安裝目錄\Python35\Lib\site-packages

例如我的:

1352084-20190802114221834-1019623062.png

然后 main.py 導入并使用自定義模塊:

#-*- coding: utf-8 -*-

importpwcong

pwcong.hi()

最后執行 main.py 文件,可以輸出 hi ,第三種方式完成。

注意:使用pycham可以把文件夾加到環境變量中

直接在文件夾上右鍵 mark directory as 選擇 scorce root 直接把文件夾加到環境變量中。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534143.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534143.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534143.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux mysql數據庫日志關閉,linux 怎樣恢復mysql數據庫日志

1、用dump命令備份數據庫。# mysqldump -u root -p dbfile > dbfile.sql2、用rsync從新服務器獲得備份的文件(SCP或WGET也可以)。# rsync -avr rootmyolddbserver:/home/mydumpfolder/dbfile.sql3、登陸新服務器的mysql客戶端。# mysql -u root -p4. 建立數據庫。mysql> …

linux劃分root_vg,為Linux添加新硬盤,劃分LVM分區

1、為VM添加兩塊SCSI硬盤→→完成后重啟VM→→運行fdisk -l,可以看到系統自動將添加的硬盤識別為/dev/sdb和dev/sdc.2、分區對sdb和sdc進行分區,並調整分區類型為8e(LVM類型),sdb劃分為sdb1,sdb2,sdc劃分為sdc1,sdc2,sdc3[rootpromote ~]# fdisk /dev/sd…

python文件輸入符_python讀入文件時加r的作用?

r’xxx’ 的含義 **加 r 會把字符串轉變為非轉義的原始字符串。**比較常用。 例如:print(D:\\test\\test.txt)print(rD:\\test\\test.txt)print(rD:\test\test.txt)123 結果是:D:\test\test.txt D:\\test\\test.txt D:\test\test.txt123 從結果看來&…

linux kvm切換器,KVM切換器是什么,看懂這一篇就夠

原標題:KVM切換器是什么,看懂這一篇就夠在服務器機房的機架不便于存放多個顯示器和鍵盤的空間里,KVM切換器起著重要的作用。KVM切換器能從本地或遠程監視與控制多個計算機與服務器,由鍵盤、鼠標和顯示屏組成的KVM控制臺是最方便和…

alien指令 linux,使用alien命令讓deb包和rpm包互相轉換

OS version: CentOS7 / Debian9發現alien這個命令時很驚喜,之前在debian上安裝etcd找不到安裝包感覺很不科學,有了alien命令事情一下就變簡單了。這里以etcd為例,將etcd從rpm包轉換成deb包,然后傳送到debian機器上安裝。(這個命令…

linux 信號_Linux信號量(1)-SYSTEM V

?信號量概念信號量本質上是一個計數器(不設置全局變量是因為進程間是相互獨立的,而這不一定能看到,看到也不能保證引用計數為原子操作),用于多進程對共享數據對象的讀取,它和管道有所不同,它不以傳送數據為…

kali linux 截圖位置,Kali Linux中使用shutter截圖工具 | CN-SEC 中文網

摘要在Kali 2017以前的版本中默認有一款截圖工具--screenshot,升級到2017版后找不到了,下面介紹一款同樣好用的截圖工具---shutter在Kali 2017以前的版本中默認有一款截圖工具--screenshot,升級到2017版后找不到了,下面介紹一款同…

python畫圖庫哪個好_機器學習基礎5--python畫圖庫matplotlib(上)

圖像是我們最直觀的數據表達方式,python的matplotlib庫可以用來畫圖。下面來簡單總結下matplotlib的使用方法。上篇講matplot畫圖中用到的基礎對象,包括圖像Figure,平面曲線Line2D,坐標軸Axes,圖例Legend, 注解Annotat…

64位 linux 32位連接器,32位匯編程序在64位Ubuntu上的匯編和連接

本教程使用的操作系統是Ubuntu Linux 18.04 LTS版本,匯編器是GNU AS(簡稱as),連接器是GNU LD(簡稱ld)。以下是一段用于檢測CPU品牌的匯編小程序(cpuid2.s):.section .dataoutput:.asciz "The processor Vendor ID is %s\n".section…

python怎么加圖片_python中如何保存圖片

一提到數字圖像處理,可能大多數人就會想到matlab,但matlab也有自身的缺點: 1、不開源,價格貴 2、軟件容量大。一般3G以上,高版本甚至達5G以上。 3、只能做研究,不易轉化成軟件。python學習網,大…

linux用rsync實現同步,Linux下使用rsync實現主備機代碼同步

rsync 分為客戶端和服務端軟件版本:rsync-2.6.9軟件下載地址:http://rsync.samba.org/ftp/rsync/服務端安裝過程1.tar -xzvf rsync-2.6.9.tar.gz #解壓縮安裝文件2.cd rsync-2.6.93. ./configure --prefix/usr/local/rsync #配置安裝目錄為/usr/local/…

python可以在多平臺運行 體現了_Python:使用異常處理來判斷運行的平臺

try:importtermios, TERMIOS               1exceptImportError:try:importmsvcrt                  2exceptImportError:try:from EasyDialogs importAskPassword   3exceptImportError: getpass "default_getpass"      …

python精通時間_學Python需要多久能學會?精通Python需要多長時間?

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓 嚴格意思上的說,Python其實是一個腳本語言,編程語言多種多樣,但是卻有開源和閉源之分,Python就是一種開放核心源代碼編程語言,其開發代碼的效率非常高,代碼編…

linux 文檔編輯器 word,linux下vi編輯器命令大全

常用命令linux下vi編輯器命令大全來源:考試大 【學而優則進,考試大以成!】 2007年8月14日  文本編輯器是所有計算機系統中最常用的一種工具。UNIX下的編輯器有ex,sed和vi等,其中,使用最為廣泛的是vi,而vi…

西門子觸摸屏修改ip地址_基于博途V15 西門子S7-1200與觸摸屏一個簡單的例子

本篇是《基于博途V15 西門子S7-1200 ...》系列的后續篇,看懂本篇文章之前請大家關注我,然后查找相關文章,學習之后再學習此篇。也請專業領域的大神批評指正。感謝大家關注與支持!步驟:1. 創建項目創建名稱為PLC_HMI2. …

mac os和linux和安卓,在我的安卓手機里,安裝Windows和macOS系統

原標題:在我的安卓手機里,安裝Windows和macOS系統不知道各位差友還記不記得,世超前陣子分享過一款無需越獄,就能讓 iPhone 和 iPad 運行其它系統的虛擬機軟件 UTM。當時世超正是靠著這個軟件,才得以讓 iPad 成功跑上了…

python連接mysql代碼_Python3連接MySQL(pymysql)轉賬代碼

# coding:utf8 import sys # Python3 采用pymysql 連接MySQL import pymysql class TransferMoney(object): def __init__(self,conn): self.connconn def check_acct_available(self,acctid): cursor self.conn.cursor() try: sql"select * from account where acctid%s…

gc java root_C#技術漫談之垃圾回收機制(GC)

GC的前世與今生雖然本文是以.NET作為目標來講述GC,但是GC的概念并非才誕生不久。早在1958年,由鼎鼎大名的圖林獎得主John McCarthy所實現的Lisp語言就已經提供了GC的功能,這是GC的第一次出現。Lisp的程序員認為內存管理太重要了,所…

中信銀行c語言筆試題庫,中信銀行筆試題型及題目

中信銀行筆試題型及題目考試題型一:專業知識(2個小時)1.專業知識單選,60題,每題1分。2.專業知識多選,20題,每題1分,未選全即少選得0.5分,錯選、漏選得0分。3.英語閱讀,20分&#xff…