百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

python入坑系列:了解虚拟环境、解释器、安装模块、分发打包

itomcoil 2025-02-20 15:55 22 浏览

通过本章,你可以去思考这几个问题:

1、Python解释器和虚拟环境区别?

2、有哪些虚拟环境管理工具?

3、怎么通过虚拟环境安装和卸载模块?

4、如何管理和分发打包项目?

新建项目

默认使用通过新建虚拟环境,我们需要了解本地的python解释器和有什么不同?

虚拟环境是Python中的一个隔离机制,允许用户在不同项目之间创建隔离的Python运行环境。每个虚拟环境可以有自己的Python解释器版本和一组安装的库,这样就可以在不同项目中使用不同版本的库而互不干扰。虚拟环境对于管理项目依赖、避免版本冲突以及确保项目的可重复性非常重要。

注意:本地使用的python解释器安装的模块在虚拟环境是用不了

上面展示的是虚拟环境的管理工具:

(1)Virtualenv(默认安装Python即可)

是一个用于创建隔离的Python环境的工具。每个环境都可以有自己的安装目录,且与系统中的其他虚拟环境相互独立。主要特点:成熟且广泛使用,可以创建与Python版本无关的环境,需要手动管理依赖和包,适用于需要快速简单创建隔离Python环境的场景

(2)Pipenv(需要用pip进行安装)

将pip和virtualenv的功能结合起来,提供一个统一的工具来管理虚拟环境和项目依赖。主要特点:自动管理虚拟环境,使用Pipfile和Pipfile.lock来替代requirements.txt,提供更丰富的依赖管理功能,支持依赖的自动解析和锁定,增强了项目的可重复性,适用于希望简化和自动化依赖管理流程的项目

(3)Poetry(需要另外下载软件包安装)

是一个Python依赖管理和打包工具,旨在简化包的发布和依赖管理,主要特点:使用pyproject.toml来管理项目设置和依赖,符合PEP 518规范,支持依赖的精确控制和解析,适用于需要精细管理依赖和同时进行包开发的复杂项目

(4)Conda(需要另外下载软件包安装)

一个开源包管理器和虚拟环境管理器,可以用于安装、运行和更新包和环境,需要单独下载安装Anaconda(包含Conda、Python以及许多科学计算和数据科学领域常用包的发行版)或者Miniconda(一个更轻量级的Anaconda版本,它只包含Conda和Python,没有预装其他包)。它不仅限于Python,也支持其他语言。主要特点:支持跨平台(Linux、macOS、Windows),可以管理非Python的依赖,如库或工具,适用于数据科学、机器学习等领域,这些领域经常需要复杂的依赖管理,

点击确定后,项目会生成env目录,就是虚拟隔离环境隔离目录。后面通过pip安装的模块都放到env/Lib/site-packages

安装模块

在pycharm,可以通过Terminal终端来安装,用这个terminal安装,默认会激活该虚拟环境。

也可以通过一下命令来激活虚拟环境

# window环境

.\venv\Scripts\activate

#macOS/Linux

source venv/bin/activate

安装虚拟环境的几种方式:

1、pip直接安装

  • 安装最新版本:
pip install 模块
  • 安装指定版本:
pip install 模块==版本号
  • 安装指定pypi源:

解决默认pypi源下载慢的问题,使用-i命令

pip3.9 install 模块 -i https://pypi.douban.com/simple/

如果报不信任问题,可以在后面增加 --trusted-host pypi.douban.com

  • 永久指定pypi源:
pip config set global.index-url https://pypi.douban.com/simple/

2、使用requirements安装

pip install -r requirements.txt

这个方式也可以跟pip安装一样,指定pypi源

3、使用仓库安装

有可能安装的模块在pypi没有发布,需要从仓库下载,将仓库代码clone到当前项目目录

git clone 仓库URL

cd 克隆后的目录

python setup.py install

4、使用wheel文件安装

pip install 文件名.whl

5、使用conda安装

前提需要安装conda虚拟环境

conda install 模块

6、使用pipenv安装

需要配置pipenv环境变量

pipenv install 模块

7、使用poetry安装

poetry add 模块

卸载模块

可以通过pip命令去卸载模块

pip uninstall 模块

# 不提示

pip uninstall 模块 -y

管理和分发打包项目

做好项目模块版本管理是很重要的,可以方便管理项目元数据,如作者信息、项目描述、分类信息等,避免后续版本冲突,也有助于其他人了解和使用你的项目以及方便新同事使用。

1、生成requirements.txt文件

pip freeze > requirements.txt

2、编写setup.py文件

在项目根目录新建setup.py文件,用于定义项目的元数据和配置信息,使得项目可以通过setuptools库安装

from setuptools import setup, find_packages

# 读取项目的长描述
with open("README.md", "r", encoding="utf-8") as fh:
    long_description = fh.read()

# 读取项目的依赖列表
with open('requirements.txt') as f:
    requirements = f.read().splitlines()

setup(
    name="your_project_name",  # 项目名称
    version="0.0.1",  # 项目版本
    author="Your Name",  # 作者名称
    author_email="your.email@example.com",  # 作者邮箱
    description="A short description of the project",  # 项目简短描述
    long_description=long_description,  # 项目的长描述,从README.md文件读取
    long_description_content_type="text/markdown",  # 长描述的内容类型
    url="https://github.com/yourusername/your_project_name",  # 项目URL
    project_urls={  # 项目相关的额外链接
        "Bug Tracker": "https://github.com/yourusername/your_project_name/issues",
    },
    classifiers=[  # 项目分类器
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ],
    packages=find_packages(),  # 自动发现项目中的包
    python_requires=">=3.6",  # Python的版本要求
    install_requires=requirements,  # 从requirements.txt文件读取的依赖列表
    extras_require={  # 额外的依赖
        "dev": ["check-manifest"],
        "test": ["coverage"],
    },
    include_package_data=True,  # 包含在版本控制系统中的数据文件
)

后续从仓库里面下载代码后,可以运行setup.py安装项目所有依赖

python setup.py install

相关推荐

MySQL修改密码_mysql怎么改密码忘了怎么办

拥有原来的用户名账户的密码mysqladmin-uroot-ppassword"test123"Enterpassword:【输入原来的密码】忘记原来root密码第一...

数据库密码配置项都不加密?心也太大了吧!

先看一份典型的配置文件...省略...##配置MySQL数据库连接spring.datasource.driver-class-name=com.mysql.jdbc.Driverspr...

Linux基础知识_linux基础入门知识

系统目录结构/bin:命令和应用程序。/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。/dev:dev是Device(设备)的缩写,该目录...

MySQL密码重置_mysql密码重置教程

之前由于修改MySQL加密模式为mysql_native_password时操作失误,导致无法登陆MySQL数据库,后来摸索了一下,对MySQL数据库密码进行重置后顺利解决,步骤如下:1.先停止MyS...

Mysql8忘记密码/重置密码_mysql密码忘了怎么办?

Mysql8忘记密码/重置密码UBUNTU下Mysql8忘记密码/重置密码步骤如下:先说下大概步骤:修改配置文件,使得用空密码可以进入mysql。然后置当前root用户为空密码。再次修改配置文件,不能...

MySQL忘记密码怎么办?Windows环境下MySQL密码重置图文教程

有不少小白在使用Windows进行搭建主机的时候,安装了一些环境后,其中有MySQL设置后,然后不少马大哈忘记了MySQL的密码,导致在一些程序安装及配置的时候无法进行。这个时候怎么办呢?重置密码呗?...

10种常见的MySQL错误,你可中招?_mysql常见错误提示及解决方法

【51CTO.com快译】如果未能对MySQL8进行恰当的配置,您非但可能遇到无法顺利访问、或调用MySQL的窘境,而且还可能给真实的应用生产环境带来巨大的影响。本文列举了十种MySQL...

Mysql解压版安装过程_mysql解压版安装步骤

Mysql是目前软件开发中使用最多的关系型数据库,具体安装步骤如下:第一步:Mysql官网下载最新版(mysql解压版(mysql-5.7.17-winx64)),Mysql官方下载地址为:https...

MySQL Root密码重置指南:Windows新手友好教程

如果你忘记了MySQLroot密码,请按照以下简单步骤进行重置。你需要准备的工具:已安装的MySQL以管理员身份访问命令提示符一点复制粘贴的能力分步操作指南1.创建密码重置文件以管理员...

安卓手机基于python3搜索引擎_python调用安卓so库

环境:安卓手机手机品牌:vivox9s4G运行内存手机软件:utermux环境安装:1.java环境的安装2.redis环境的安装aptinstallredis3.elasticsearch环...

Python 包管理 3 - poetry_python community包

Poetry是一款现代化的Python依赖管理和打包工具。它通过一个pyproject.toml文件来统一管理你的项目依赖、配置和元数据,并用一个poetry.lock文件来锁定所有依赖的精...

Python web在线服务生产环境真实部署方案,可直接用

各位志同道合的朋友大家好,我是一个一直在一线互联网踩坑十余年的编码爱好者,现在将我们的各种经验以及架构实战分享出来,如果大家喜欢,就关注我,一起将技术学深学透,我会每一篇分享结束都会预告下一专题最近经...

官方玩梗:Python 3.14(πthon)稳定版发布,正式支持自由线程

IT之家10月7日消息,当地时间10月7日,Python软件基金会宣布Python3.14.0正式发布,也就是用户期待已久的圆周率(约3.14)版本,再加上谐音梗可戏称为π...

第一篇:如何使用 uv 创建 Python 虚拟环境

想象一下,你有一个使用Python3.10的后端应用程序,系统全局安装了a2.1、b2.2和c2.3这些包。一切运行正常,直到你开始一个新项目,它也使用Python3.10,但需要...

我用 Python 写了个自动整理下载目录的工具

经常用电脑的一定会遇到这种情况:每天我们都在从浏览器、微信、钉钉里下各种文件,什么截图、合同、安装包、临时文档,全都堆在下载文件夹里。起初还想着“过两天再整理”,结果一放就是好几年。结果某天想找一个发...