pip使用
安裝包pip install 包名 # 最新版本
pip install 包名==1.0.4 # 指定版本
pip install '包名》=1.0.4' # 最小版本
公升級包pip install --upgrade 包名
解除安裝包pip uninstall 包名
搜尋包pip search 包名
列出已安裝的包
pip list
# 匯入和匯出安裝包
pip freeze > 碟符:/requirements.txt # 匯出
pip install -r 碟符:/requirements.txt # 匯入
# 檢視版本
pip -v 或者 --version
pip源修改
pip國內的一些映象
阿里雲
中國科技大學
豆瓣(douban)
清華大學
windows:
直接在user目錄中建立乙個pip目錄,如:c:/users/xx/pip,新建檔案pip.ini,內容如下
[global]
index-url =
也可以安裝的時候通過引數 -i 臨時修改:
pip install 包名 -i
模組加強
1. 內建模組
2. 標準模組 (/lib)
3. 自定義模組
4. 第三方包模組 (/lib/site-packages)
查詢順序:
1, 內建模組和標準 優先順序最高
2, 當前檔案所在路徑------>第三方模組路徑
3, 自定義模組查詢路徑
import sys
sys.path.insert(0,"模組路徑")
命名空間作用域
命名空間: 解決命名突出, python只能用於檢視
命名空間,字典, 儲存變數/函式/類 名 與其 對應值的 對映關係
區域性命名空間–locals()
全域性命名空間–globals()
內建命名空間- print(dir(builtins))
概念: 變數/函式 作用範圍
作用域分類:
1 .區域性作用域 (函式內部)
只能在函式內使用
2. 全域性作用域 (函式外部)
任意地方都能訪問, 函式內不能修改
3. 閉包作用域 (函式 巢狀函式, 內函式使用外層函式中的變數 , 必須返回內函式)
4. 內建作用域
任意位置使用
1. 三種
local: 區域性命名空間
檢視: locals()
global : 全域性命名空間, 只要在全域性命名空間中的內容到處都能使用
檢視: globals()
__name__: 模組名, 如果是主執行檔案 值為 __main__
__builtins__: 內建名字空間物件,用於檢視內建名字空間中的內容的
__file__: 當前檔案的絕對路徑
# 動態獲取當前檔案所在的目錄
import os
print(os.path.dirname(__file__))
built-in: 內建命名空間, 內建中的所有內容到處都能使用
檢視: dir(__builtins__)
內容: int,list,tuple,str,max,min,sum,range,len,super,locals,globals
例子1:
name = "張飛" # 全域性命名空間
class student(object):
pass
def changename():
name = "李四" # 區域性命名空間中
age = 18 # 區域性命名空間中
# 檢視區域性命名空間內容
print(locals())
changename()
print(name)
# 檢視全域性
print(globals())
# 檢視當前檔案的路徑
print(__file__)
# 動態獲取當前檔案所在目錄
import os
print(os.path.dirname(__file__))
# 檢視內建中的內容
print(dir(__builtins__))
1. 作用域的分類
區域性作用域(local): 作用範圍為當前函式內容
閉包作用域(enclosing): 作用範圍為函式中的子函式中(函式巢狀)
全域性作用域(global): 作用範圍全域性
內建作用域(builtin): 作用範圍全域性
作用域: 指成員(變數,函式,類,方法)的使用範圍
2. 成員的查詢順序: l>e>g>b
3. 指定操作對應作用域中的成員
在函式內修改全域性的成員, 使用 global 全域性變數名 引入之後才能修改
在子函式中修改閉包變數, 使用 nonlocal 閉包變數 引入閉包變數才能修改
例子2:
def len(string): # 獲取字串長度
print("全域性位置的len")
i = 0
for tmp in string:
i += 1
return i
name = "小劉備"
def outer():
name = "區域性張飛"
print(name)
def inner(): # 子函式
# 閉包
nonlocal name
name += "小關羽" # local
print("閉包位置輸出:", name)
print("名字長度", len(name))
inner()
print("全域性位置的", name)
outer()
變數查詢順序
複製和拷貝
簡單資料和複雜資料
1. 簡單資料在賦值的時候都是使用同乙個記憶體空間, 節約記憶體.
列如: 字串, 數字 ,布林
2. 複雜資料,每次賦值,都是開闢乙個新的記憶體空間, 將對應的空間位址 賦值 給變數
例如: 列表,字典,元組,類例項化的物件
==: 判斷值相等
is : 判斷位址相等
1. 淺拷貝
import copy
copy.copy()
2. 深拷貝
將對應資料中 的複雜資料 也拷貝了乙個新的記憶體位址
import copy
新資料 = copy.deepcopy(舊資料)
python 包管理(包 模組 命名空間)
如何定義模組 如何使用模組 語法import module name module name.function name module name.class name import 模組 as 別名 from module name import func name,class name from ...
模組 包 命名空間和作用域
模組的物理層面是檔案,包就是有層次的特殊檔案結構,特殊的點在於,每個目錄下面都必須有 init py檔案,如果沒有該檔案,則只是乙個普通的檔案目錄,並不能作為包匯入。這是因為匯入包的原理其實就是匯入該包的路徑下面的 init py,其中包含可以匯入的各種模組。python模組的匯入操作 通過impo...
Python 命名空間
本文介紹python中命名空間中的legb原則。legb含 釋 l local function 函式內的名字空間,包括區域性變數和形參 e enclosing function locals 外部巢狀函式的名字空間 例如closure g global module 函式定義所在模組 檔案 的名字...