Python环境配置以及包管理方法详细介绍

本文记录一下在Windows和Linux上安装部署Python环境以及Python包管理方法。

目录

  • 1 Windows上安装Python
  • 2 Linux安装Python
    • 2.1 环境准备
    • 2.2 安装
    • 2.3 验证
  • 3 python虚拟环境
    • 3.1 虚拟环境安装
    • 3.2 虚拟环境激活
    • 3.3 虚拟环境去激活
  • 4 python包管理
    • 4.1 pip包管理工具
    • 4.2 包安装
      • 4.2.1 在线安装
      • 4.2.2 离线安装
    • 4.3 包卸载
    • 4.4 包升级
    • 4.5 包查看
    • 4.6 生成依赖包列表文件
    • 4.7 包下载及安装

1 Windows上安装Python

访问Python官网下载安装包:https://www.python.org/ ,Windows系统Python安装包下载地址:https://www.python.org/downloads/windows/,需要注意Windows系统版本所支持的Python版本,比如Windows7不支持Python3.9及之后的版本。

本文所使用的系统为Windows11,安装的Python版本为3.10.11。

下载完成后双击安装即可,建议将Python加入环境变量。

安装完成后,打开cmd窗口执行python --version 或者python -V 命令可查看安装的Python版本。

$ python --version
Python 3.10.11

执行where.exe python命令可查看Python的安装路径:

$ where.exe python
D:\tools\python310\python.exe

除了在Python官网下载安装官方Python发行版外,也可以安装Anaconda,Anaconda 是一个用于科学计算的开源 Python 发行版,支持 Linux, Mac, Windows,包含了很多常用的科学计算和数据分析的库,例如 NumPy、SciPy、Pandas、Matplotlib 等。通过 conda 包管理器来安装、更新和管理 Python 包和环境。本文不做详细介绍,anaconda安装包下载地址:https://docs.anaconda.com/free/anaconda/allpkglists/

2 Linux安装Python

这里介绍centos上安装方法:

2.1 环境准备

本文使用的Linux发行版本为centos7:

$ uname -a
Linux Server 3.10.0-1160.114.2.el7.x86_64 #1 SMP Wed Mar 20 15:54:52 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

更新yum包管理器:

$ sudo yum -y update

安装必要的构建依赖项:

$ sudo yum -y groupinstall "Development Tools"
$ sudo yum -y install gcc openssl-devel bzip2-devel libffi-devel
$ sudo yum -y install perl-IPC-Cmd

Python3.10需要OpenSSL1.1以上的版本,需要下载编译openssl-3.0.7:

$ yum remove openssl
$ wget https://www.openssl.org/source/openssl-3.0.7.tar.gz
$ tar -zxvf openssl-3.0.7.tar.gz
$ cd openssl-3.0.7
$ ./config --prefix=/usr/local/openssl
$ make & make install

编译安装完成后检查是否安装成功:

$ which openssl
/usr/bin/openssl
$ openssl version
OpenSSL 3.0.7 1 Nov 2022 (Library: OpenSSL 3.0.7 1 Nov 2022)

如果报错,重新添加一下软链接:

rm -rf /usr/bin/openssl
rm -rf /usr/include/openssl
rm -rf /usr/lib64/libssl.so
rm -rf /usr/lib64/libcrypto.so
rm -rf /usr/lib/libssl.so
rm -rf /usr/lib/libcrypto.so

ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/lib64/libssl.so /usr/lib64/libssl.so
ln -s /usr/local/openssl/lib64/libcrypto.so /usr/lib64/libcrypto.so
ln -s /usr/local/openssl/lib64/libssl.so /usr/lib/libssl.so
ln -s /usr/local/openssl/lib64/libcrypto.so /usr/lib/libcrypto.so
ln -s /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib/libcrypto.so.3
ln -s /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3

写入动态库的路径:

$ echo "/usr/local/openssl/lib64" >> /etc/ld.so.conf
$ ldconfig

2.2 安装

修改python安装包下/Modules/Setup文件,配置OPENSSL路径:

$ vim /root/Python-3.10.11/Modules/Setup

# Socket module helper for socket(2)
_socket socketmodule.c

# Socket module helper for SSL support; you must comment out the other
# socket line above, and edit the OPENSSL variable:
OPENSSL=/usr/local/openssl
_ssl _ssl.c \
     -I$(OPENSSL)/include -L$(OPENSSL)/lib64 \
     -lssl -lcrypto

下载python源码:https://www.python.org/downloads/source/,我下载的版本为3.10.11,得到Python-3.10.11.tgz文件。

或者使用wget命令下载:

$ wget https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz

解压:

$ tar xvf Python-3.10.11.tgz
$ cd Python-3.10.11

指定安装路径:

$ ./configure --prefix=/usr/local/python3.10.11 --enable-shared

使用make命令编译安装:

$ make && make install
#添加python3软链接到/usr/bin/python3
ln -s /usr/local/python3.10.11/bin/python3.10 /usr/bin/python3

#添加pip3软链接/usr/bin/pip3
ln -s /usr/local/python3.10.11/bin/pip3 /usr/bin/pip3

如果提示已存在,需要先删除:

$ ls -l /usr/bin/python3
lrwxrwxrwx 1 root root 9 324 20:29 /usr/bin/python3 -> python3.6
$ rm /usr/bin/python3
rm:是否删除符号链接 "/usr/bin/python3"?yes
$ ls -l /usr/bin/python3
ls: 无法访问/usr/bin/python3: 没有那个文件或目录
$ ln -s /usr/local/python3.10.11/bin/python3.10 /usr/bin/python3
$ ls -l /usr/bin/pip3
-rwxr-xr-x 1 root root 407 1014 2020 /usr/bin/pip3
$ rm /usr/bin/pip3
rm:是否删除普通文件 "/usr/bin/pip3"?yes
$ ln -s /usr/local/python3.10.11/bin/pip3 /usr/bin/pip3
$ python3 -V
Python 3.10.11

接下来把/usr/local/python3.10.11/bin添加到环境变量:

$ vim /etc/profile
export PATH=$PATH:/usr/local/python3.10.11/bin

$ source /etc/profile

查看python3路径:

$ which python3
/usr/bin/python3

2.3 验证

执行

$ python3 --version
Python 3.10.11

3 python虚拟环境

3.1 虚拟环境安装

我们可以通过虚拟环境为每个python项目安装和管理项目所需特定的Python库,比如两个项目可能需要不同的库版本。虚拟环境是一个单独的目录结构,通常包含在python项目根目录中,命名为venv或者.venv

可以使用venv模块来创建虚拟环境,

# 进入项目根目录
$ cd D:/devWorkspace/PythonProject/venvDemo
# 创建名为venv的虚拟环境
$ python -m venv venv

生成的虚拟环境目录结构如下:

\---venv
    +---Include
    +---Lib
    |   +---site-packages
    |       +---pip
    |       +---pip-23.0.1.dist-info
    |       +---pkg_resources
    |       +---setuptools
    |       +---setuptools-65.5.0.dist-info
    |       +---_distutils_hack
    +---Scripts
    |   +---activate
    |   +---activate.bat
    |   +---Activate.ps1
    |   +---deactivate.bat
    |   +---pip.exe
    |   +---pip3.10.exe	
    |   +---pip3.exe
    |   +---python.exe
    |   +---pythonw.exe

3.2 虚拟环境激活

windows系统中,执行Scripts目录下的activate.bat脚本,即可激活虚拟环境:

D:\devWorkspace\PythonProject\venvDemo> venv\Scripts\activate
(venv) D:\devWorkspace\PythonProject\venvDemo>
(venv) D:\devWorkspace\PythonProject\venvDemo> python
Python 3.10.11 (tags/v3.10.11:7d4cc5a, Apr  5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> import sys
>>> sys.path
['', 'D:\\tools\\python310\\python310.zip', 'D:\\tools\\python310\\DLLs', 'D:\\tools\\python310\\lib', 'D:\\tools\\python310', 'D:\\devWorkspace\\PythonProject\\venvDemo\\venv', 'D:\\devWorkspace\\PythonProject\\venvDemo\\venv\\lib\\site-packages']

括号中的venv是虚拟环境的名称。

激活虚拟环境后,就可以在当前的环境中进行包管理、执行脚本了。在当前虚拟环境使用pip安装的包会安装到D:\\devWorkspace\\PythonProject\\venvDemo\\venv\\lib\\site-packages目录下。

3.3 虚拟环境去激活

执行Scripts目录下的deactivate.bat脚本即可退出当前虚拟环境:

(venv) D:\devWorkspace\PythonProject\venvDemo> venv\Scripts\deactivate
D:\devWorkspace\PythonProject\venvDemo>

4 python包管理

4.1 pip包管理工具

python标准库包含一些基础的python模块,但为了提高python编程效率,一般会使用python第三方库。

python中通常使用pip包管理工具进行python包管理,可对python库进行安装、升级、卸载等操作。本文使用的python3.10.11标准发行版本中默认安装了pip。

如果你的python发行版本没有安装pip,可以使用get-pip.py脚本安装,可到这里https://bootstrap.pypa.io/下载,然后执行如下命令安装:

$ python get-pip.py

第三方Python包托管在pypi存储库中:https://pypi.org/

4.2 包安装

4.2.1 在线安装

使用pip install package_name命令安装,默认情况下会安装当前python版本支持的最新的包版本,也可以指定版本:pip install package_name==3.0.0,执行安装命令后,会到pypi存储库中下载包并自动安装。比如安装requests包:

$ pip install requests
Collecting requests
  Using cached requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
Collecting charset-normalizer<4,>=2 (from requests)
  Using cached charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl.metadata (34 kB)
Collecting idna<4,>=2.5 (from requests)
  Downloading idna-3.7-py3-none-any.whl.metadata (9.9 kB)
Collecting urllib3<3,>=1.21.1 (from requests)
  Using cached urllib3-2.2.1-py3-none-any.whl.metadata (6.4 kB)
Collecting certifi>=2017.4.17 (from requests)
  Using cached certifi-2024.2.2-py3-none-any.whl.metadata (2.2 kB)
Using cached requests-2.31.0-py3-none-any.whl (62 kB)
Using cached certifi-2024.2.2-py3-none-any.whl (163 kB)
Using cached charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl (100 kB)
Downloading idna-3.7-py3-none-any.whl (66 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 66.8/66.8 kB 113.2 kB/s eta 0:00:00
Using cached urllib3-2.2.1-py3-none-any.whl (121 kB)
Installing collected packages: urllib3, idna, charset-normalizer, certifi, requests
Successfully installed certifi-2024.2.2 charset-normalizer-3.3.2 idna-3.7 requests-2.31.0 urllib3-2.2.1

也可以使用requirements.txt文件来批量安装文件中的包,比如requirements.txt文件内容为:

click==8.1.7
Flask==3.0.2

执行如下命令安装:

$ pip install -r requirements.txt

如果你的环境提示多次重试无法安装,可能原因的默认使用的是国外的官方的pypi源,网络原因无法下载,可以使用国内镜像源:

https://pypi.tuna.tsinghua.edu.cn/simple
http://pypi.douban.com/simple
http://mirrors.aliyun.com/pypi/simple
https://mirrors.bfsu.edu.cn/pypi/web/simple/

可在安装时指定源,如果不行,其它源都可尝试下。

$ pip install --upgrade pip -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

4.2.2 离线安装

工作中的开发环境通常无法联网,需要离线安装。可以在有网的环境将包下载下来然后进行离线安装。

到pypi存储库中:https://pypi.org/中搜索下载要安装的库,主义有些库需要根据你的系统环境下载指定版本。

比如下载requests包:

通常有两种方式安装,一种是源码安装,第二种是下载whl文件安装。如果有whl文件,建议直接下载whl文件安装。有些包没有提供whl文件,需要下载源码文件进行编译安装。

whl文件安装方法:

$ pip install requests-2.31.0-py3-none-any.whl

源码文件编译安装方法为:解压后,进入根目录(包含setup.py文件),执行如下命令安装:

$ python setup.py install

4.3 包卸载

可使用pip uninstall package_name命令卸载已安装的包:

$ pip uninstall requests
Found existing installation: requests 2.31.0
Uninstalling requests-2.31.0:
  Would remove:
    d:\devworkspace\pythonproject\venvdemo\venv\lib\site-packages\requests-2.31.0.dist-info\*
    d:\devworkspace\pythonproject\venvdemo\venv\lib\site-packages\requests\*
Proceed (Y/n)? y
  Successfully uninstalled requests-2.31.0

4.4 包升级

可使用--upgrade对已安装的包进行升级,比如升级pip:

$ python -m pip install --upgrade pip
# 或者
$ pip install --upgrade pip

$ pip list | findstr pip
pip                24.0

4.5 包查看

1、在命令行窗口执行pip list或者python -m pip list命令可查看当前python环境安装的所有包。

比如在前面创建的虚拟环境中执行pip list

(venv) D:\devWorkspace\PythonProject\venvDemo> pip list
Package            Version
------------------ --------
blinker            1.7.0
certifi            2024.2.2
charset-normalizer 3.3.2
click              8.1.7
colorama           0.4.6
Flask              3.0.2
idna               3.7
itsdangerous       2.1.2
Jinja2             3.1.3
MarkupSafe         2.1.5
pip                24.0
setuptools         65.5.0
urllib3            2.2.1
Werkzeug           3.0.2

2、可使用-o,--outdated列出过时的包,使用-u,--uptodate列出版本最新的包:

(venv) D:\devWorkspace\PythonProject\venvDemo>pip list -o
Package    Version Latest Type
---------- ------- ------ -----
Flask      3.0.2   3.0.3  wheel
setuptools 65.5.0  69.5.1 wheel

(venv) D:\devWorkspace\PythonProject\venvDemo>pip list -u
Package            Version
------------------ --------
blinker            1.7.0
certifi            2024.2.2
charset-normalizer 3.3.2
click              8.1.7
colorama           0.4.6
idna               3.7
itsdangerous       2.1.2
Jinja2             3.1.3
MarkupSafe         2.1.5
pip                24.0
urllib3            2.2.1
Werkzeug           3.0.2

3、使用pip show package_name命令可查看包的相关信息:

(venv) D:\devWorkspace\PythonProject\venvDemo>pip show click
Name: click
Version: 8.1.7
Summary: Composable command line interface toolkit
Home-page: https://palletsprojects.com/p/click/
Author:
Author-email:
License: BSD-3-Clause
Location: d:\devworkspace\pythonproject\venvdemo\venv\lib\site-packages
Requires: colorama
Required-by: Flask

4.6 生成依赖包列表文件

可使用pip freeze命令列出已安装的软件包,生成Python项目的依赖库文档requirements.txt:

$ pip freeze > requirements.txt 

如果在python项目全局环境里直接使用 pip freeze > requirements.txt 会导出大量与该项目无关的依赖,pip freeze命令会把你当前 python 环境的所有包都导出来了。可以采用pipreqs导出仅当前项目所需的依赖包:

$ pip install pipreqs

在项目的根目录下输入命令:

pipreqs ./ --encoding=utf8

会在根目录下生成requirements.txt文件,仅包含当前python项目依赖的库。

4.7 包下载及安装

一般在环境迁移中会用到包下载功能,使用pip download命令下载当前python环境的包文件。

使用pip freeze或者pipreqs命令获取到依赖包列表文件后,可以使用使用pip download命令下载包文件:

$ pip download -d /usr/local/pythonlibs -r requirements.txt
  • -d 参数指定包文件保存路径。

下载完成后,复制包文件和requirements.txt文件到要安装的离线环境中,执行如下命令批量安装:

$ pip install --no-index --find-links=/usr/local/pythonlibs -r /usr/local/pythonlibs/requirements.txt
  • --no-index 表示忽视默认的依赖包索引
  • --find-links= 表示从指定的目录寻下找离线包

也可以单个安装,比如安装requests库:

$ pip install --no-index --find-links=/usr/local/pythonlibs requests
--THE END--

参考文档:

  1. PyPI · The Python Package Index

  2. anaconda清华大学开源软件镜像站地址:anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

  3. Welcome to Python.org

  4. Python3 在线工具 | 菜鸟工具 (jyshare.com)

  5. Python - Environment Setup (tutorialspoint.com)

  • 26
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值