1. 程式人生 > 實用技巧 >羞羞的Python模組包

羞羞的Python模組包

目錄

一、pip 二、pip常用命令 三、No module 'xxxxx' 四、寫在最後

前言

寫Python程式碼的時候,經常會遇到包的問題,但是都是遇到一次,搜尋一次,解決了。下一次還是同樣的,沒有去總結為什麼,沒有找到根本的原因,這樣不是一個正經運維該有的操作,所以就有了這篇文章,算是自己的一個總結。最近體會到了,知識點一點一點磨,查漏補缺,形成自己的知識體系真的很重要。在基礎紮實的情況下,新技術學起來也會溜得快。還有一點體會就是一定要動手,動手,動手,實踐。不放過任何一個錯誤。 取名為羞羞的Python模組包是因為經常我們安裝了模組包,但是他就是不出來,說不存在,因此我認為他只是害羞,給他賦予特權就會出來。

一、pip

1)pip是python的包管理工具,該工具提供了對Python包的查詢、下載、安裝、解除安裝等功能;Python2.7.9+ 或 Python 3.4+ 以上版本都自帶pip工具; 2)如果沒有自帶的pip工具,可以到官網下載安裝包,解壓安裝,版本自選
wget https://files.pythonhosted.org/packages/45/ae/8a0ad77defb7cc903f09e551d88b443304a9bd6e6f124e75c0fbbf6de8f7/pip-18.1.tar.gz
tar -zxvf pip-18.1.tar.gz 
cd pip-18.1
python setup.py 
install pip -v

二、pip常用命令

# 安裝
pip install

# 解除安裝
pip uninstall

# 搜尋包
pip search PackageName

# 顯示安裝包資訊
pip show PackageName

# 列出已經安裝的包
pip list

# 檢視可升級的包
pip list -o

三、No module 'xxxxx'

1、檢查是否真的沒有這個模組,使用pip安裝即可; 2、我們經常遇到的情況是,在執行指令碼經常會遇到明明import了包,也pip安裝了包,但是就是報錯,“...ModuleNotFoundError: No module named 'Flask'...”; 原因:
這是因為python的系統路徑沒有包含pip安裝模組所在的路徑 可以先通過python看一下,他的系統變數有哪一些,操作如下:
[root@ip-172-0-1-1 Flask2]# python3 
Python 3.6.5 (default, Jul 24 2020, 06:35:37) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/usr/local/python3/lib/python36.zip', '/usr/local/python3/lib/python3.6', '/usr/local/python3/lib/python3.6/lib-dynload', '/root/.local/lib/python3.6/site-packages', '/usr/local/python3/lib/python3.6/site-packages']
>>> 

可以看到包含site-packages系統的路徑有:
/root/local/lib/python3.6/site-packages
/usr/local/python3/lib/python3.6/site-packages
而我們pip安裝的時候的目錄為/usr/local/lib/python3.6/site-packages,沒有在python的系統變數裡
pip3 install flask
Requirement already satisfied: flask in /usr/local/lib/python3.6/site-packages (1.1.2)
Requirement already satisfied: Werkzeug>=0.15 in /usr/local/lib/python3.6/site-packages (from flask) (1.0.1)
Requirement already satisfied: itsdangerous>=0.24 in /usr/local/lib/python3.6/site-packages (from flask) (1.1.0)
Requirement already satisfied: click>=5.1 in /usr/local/lib/python3.6/site-packages (from flask) (7.1.2)
Requirement already satisfied: Jinja2>=2.10.1 in /usr/local/lib/python3.6/site-packages (from flask) (2.11.1)
Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib/python3.6/site-packages (from Jinja2>=2.10.1->flask) (1.1.1)

3、解決辦法 在已有的路徑下,建立一個以.pth結尾的檔案,並把這個沒有的路徑寫入這個檔案,如
echo "/usr/local/lib/python3.6/site-packages" > /usr/local/python3/lib/python3.6/site-packages/lee.pth

四、寫在最後

在平凡中堅持前行,總有一天會遇見不一樣的自己。 寫部落格記錄、思考、總結,趟過的坑不趟第二遍。

所有的文章,皆同步在公眾號“運維汪”,可關注;也可加入“不扯淡,專注於技術”的QQ群:753512236