py 類,模組, 包與庫 與 pip 管理

2021-07-29 10:14:11 字數 2439 閱讀 3536

模組和包, 庫的概念經常被混用.

一般來講,跟著xx.py的後面還會有xx.pyc , 這是py直譯器根據原始檔生成的中間檔案, 方便下次使用.

模組即原始檔. 內含若干個類.

py會在 sys.path 指定的若干個目錄下去尋找模組.這些目錄若不夠用還可以自己擴充,見:

import sys

# 當引入其他模組時,嘗試在指定目錄下尋找

***module.__file__#檢視模組的檔案位置.

dir('***module')#檢視模組中的函式等

包是乙個目錄, 內含若干個模組和若干個子目錄.它的特點是 目錄下含有__init__.py. 所以乙個包也有著乙個同名模組.__init__.py可以只是乙個空檔案,但是必須存在; 否則這個目錄就僅僅是乙個目錄,而不是乙個包,它就不能被匯入或者包含其它的模組和巢狀包。

庫是相關包的集合. 如numpy,tensorflow.

自己寫乙個py原始檔, 它的名字就是模組名, 可以被其他原始檔import .

絕對匯入的格式為import a.bfrom a import b,相對匯入格式為from . import bfrom ..a import b.代表當前模組,..代表上層模組,...代表上上層模組,依次類推。

import 包 as 別名

import 包.下級包.下級包.模組名 as 別名

q:import numpyfrom numpy import *的區別?

a:兩種方式都是引入numpy庫中的所有函式、物件、變數等,區別在於呼叫其中內容時不同.

以random模組為例,第一種方式要用numpy.random,第二種方式只用random即可。

但是請特別注意:pep標準推薦使用第一種方式,請在日常使用中盡量使用第一種方法,就比如numpy中random 標準庫中也有random,但是兩者的功能是不同的,使用第二種方式容易造成混淆.

多個模組間使用from xx import xx這種語法引入迴圈依賴時, 會報錯, 因為直譯器都還沒有執行到函式定義的**,所以找不到模組。

解決辦法為 使用import xx的語法, 不以from xx打頭.

有 pip 或 easy_install 可以用. 類似於 linux中的yum.

在win系統中, 它們位於python/script/ 目錄下.

pip list列出來已安裝的模組.

help('module')#py自帶的命令,檢視已安裝的模組. 它還包含了一大堆內建的模組.

pip show ***#檢視庫的版本與簡介

##4.2 安裝與解除安裝

安裝解除安裝時最好關閉相關的ide等程序, 否則刪除, 挪動檔案就無法進行。

c:\users\yichu>pip install tensorflow==random

collecting tensorflow==random

could not find a version that satisfies the requirement tensorflow==random (from versions: 0.12.0rc0, 0.12.0rc1, 0.12.0, 0.12.1, 1.0.0, 1.0.1, 1.1.0rc0, 1.1.0rc1, 1.1.0rc2, 1.1.0, 1.2.0rc0, 1.2.0rc1, 1.2.0rc2, 1.2.0, 1.2.1, 1.3.0rc0, 1.3.0rc1, 1.3.0rc2, 1.3.0, 1.4.0rc0, 1.4.0rc1, 1.4.0, 1.5.0rc0, 1.5.0rc1, 1.5.0, 1.6.0rc0, 1.6.0rc1, 1.6.0)

no matching distribution found for tensorflow==random

訪問國外源安裝會特別慢, 所以可配置阿里雲的python映象位址.

# pip 源配置檔案

[global]

trusted-host=mirrors.aliyun.com

index-url=

linux

mkdir ~/pip

然後在pip目錄下建立檔案 pip.conf ,新增上面內容。

包與模組管理

第乙個檔案命名為models.py models.py檔案 page 5def test print models.test 第二個檔案命名為views.py views.py檔案 x 99 deftest print views.test import math print math.pi 3.1...

Python包與模組管理

import module 匯入模組 from module import a 匯入模組中的變數或方法 from module import 匯入模組中所有的變數或方法模組是乙個 py檔案 裡面可能含有多個變數及方法,使用 import 模組名 匯入模組後,模組中的變數或方法可以通過 模組名.變數名...

黑客類庫 與 python模組

python 必須會使用類庫 name mechansoup 定位是功能性的網頁抓取和互動庫。它最大的特點是可以和網頁互動,填充一些表單。mechansoup 定位是功能性的網頁抓取和互動庫。它最大的特點是可以和網頁互動,填充一些表單。beautifulsoup 最主要的功能是從網頁抓取資料。req...