Python基础(十五)—模块和命名空间、virtualenv与pip

第五十五篇:虚拟环境管理:Virtualenv和Pipenv的使用与最佳实践 摘要: Python虚拟环境是项目开发中的关键工具,用于解决依赖冲突和环境一致性问题。文章首先介绍了虚拟环境的价值和发展历程,从早期的virtualenv到现代的pipenv等工具。第二章详细解析了virtualenv的使用,包括安装、创建、激活环境及高级管理技巧。第三章聚焦pipenv现代工作流,阐述其整合pip和virtualenv的设计理念,介绍Pipfile结构和lock机制确保环境确定性。全文系统性地讲解了从基础到高级的虚拟环境管理方法,为Python开发者提供了完整的依赖管理解决方案。 阅读详情

解释器

需要Python解释器去执行.py文件。当我们从Python官方网站下载并安装好Python 3.x后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。
CPython是使用最广的Python解释器。。
其次还有IPython、PyPy、Jython(把Python代码编译成Java字节码执行)、IronPython(把Python代码编译成.Net的字节码)。

模块和命名空间

  • 介绍
    一个模块就是一个包含pytho代码的文件, 后n缀名成是.py就可以,模块就是个python文件。模块通常当做命名空间使用,避免命名冲突
  • 导入模块
    假如我们编写一个hello.py模块,只包含一个简单的hi()函数。
    • import hello
      这种导入方法,在引用hi()函数时,是就必须采用:hello.hi()
    • from hello import hi
      这种办法使用hi()函数时,可以直接使用hi()。也可以用from hello import *,但是不推荐!!!
    • import hello as ho
      这种方法是最好的,相当于将复杂的名称重命名,简单化。
  • if _name_ == ‘_main_’
    为了对模块的测试,如上一个例子:hello.py模块,不止包含hi()函数。如果想要对hi()函数进行测试,我们可以在模块后面直接调用函数 hi()。但是这种情况下,当使用到该模块,无论调不调用hi(),都会运行测试函数hi()。由于在主程序中,查看__name__属性必定是输出_main_,如果查看的是:hello._name_,这个则输出为hello

    根据上面的说明,则不难想到if _name_ == '_main_'的作用了!当运行的主程序为该模块(测试的时候),则__name__为_main_,则运行对应的测试方法。
  • 搜索路径
    import sys
    print(sys.path)
    以上代码查看当前python搜索包的路径,可以用 sys.path.append(‘path’),引入搜索路径
  • 包管理
    创建包步骤如下:
    • 创建一个文件夹,名称则为包名称,存放对应模块
    • 文件夹内创建一个_init_.py的模块文件,内容可为空。
      以上创建完成,调用的话,直接使用包名.模块名,相当于以上的导入方法的模块名前,加上包名。

虚拟环境virtualenv与pip

  • 下载
    可以直接使用pip3下载virtualenv,下载完成后,默认系统就直接可以使用virtual进行虚拟环境的创建、删除等。如有问题,可以在环境变量Path中(系统或用户变量都可以)进行相应的新增:C:\Users\Sunny\AppData\Local\Programs\Python\Python36-32\Scripts
  • 使用
    virtualenv -p /usr/local/bin/python3.5 --no-site-packages venv
    创建一个python3环境下的不包含Python环境中的所有第三方包的虚拟环境venv
    激活可以直接运行
    venv/bin/activate
    则直接进入了虚拟环境中。
    退出直接运行:deactivate
  • 其他命令
    virtualenv list 查看所有虚拟环境
    删除:直接少出虚拟环境的目录venv即可
  • pip
    • pip命令
pip --version
pip list
pip install --upgrade pip
pip show Jinja2
pip list --outdated
pip install XXX.whl
python setup.py install
pip install scikit-learn==0.18.0
  • 下载源当下载包速度不可观,可以直接指定下载源:

    (清华源)pip install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple/

    (豆瓣源)pip install virtualenv -i https://pypi.doubanio.com/simple/

  • 保存虚拟环境

    • 可以直接拷贝虚拟环境
    • 使用: pip freeze > requirements.txt,导出需求文本
      pip install -r requirements.txt,引入需求文本

个人博客:Loak 正 - 关注人工智能及互联网的个人博客
文章地址:Python基础(十五)—模块和命名空间、virtualenv与pip

Django3.0+Python3.8+MySQL8.0 个人博客搭建二|创建虚拟环境 一、安装Python3.8 具体安装过程可以参考这篇文章:Python3安装完全攻略 Mac篇 这里就不过多叙述。 安装成功之后,在终端命令行窗口中输入Python3 即可进入到Python的交互环境中,如下: xxxxdeMacBook-Pro:~ xxxx$ python3 Python 3.8.0 (v3.8.0:fa919fdf25, Oct 14 2019, 10:23:27) [Cl... 阅读详情

相关推荐

Ubuntu零基础入门到精通【1.8讲】:学习 Ubuntu 的正确路线图:从零基础到工程实践的系统性成长路径!

🏆 本文收录于 《滚雪球学 Ubuntu》 专栏。 本专栏面向有一定计算机基础,但尚未系统学习 Linux / Ubuntu 的读者,采用“滚雪球式学习法”:先装好、再会用、再理解、再优化、再实战,带你从第一次进入 Ubuntu 桌面 / 终端开始,逐步掌握 Ubuntu 的日常使用、命令操作、软件安装、系统配置、开发环境搭建与服务器部署能力。

**My Coding Family** 1358

virtualenv使用教程

问题:使用新环境python3.4+django1.11+windows写自己的项目 解决方案: 使用virtualenv实现生产环境隔离 1. virtualenv的安装 pip install virtualenv 2. 新建一个环境 virtualenv new_env # 默认基于你现在的python环境 3. 激活使用,windows中 new-env...

yzlll的博客 2058

混合动作空间在强化学习中的创新应用:PDQN与MPDQN算法解析

本文深入解析了强化学习中处理混合动作空间的PDQN与MPDQN算法。针对既有离散选择又有连续调节的复杂决策场景,PDQN通过参数化深度Q网络,巧妙结合DQN与DDPG进行交替优化;MPDQN则进一步改进,为每个离散动作提供专属参数评估以减少干扰。文章通过游戏、自动驾驶等实例阐述了其应用价值与面临的挑战。

efc123456的博客 864

Python的virtualenv虚拟环境

Python的virtualenv虚拟环境1 安装虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 退出虚拟环境1.4 删除虚拟环境2 使用虚拟环境 其实一直在Python的虚拟环境,确实很好用,这次想总结一下,好方便自己查找,有时候对某一个库版本要求不一样,用虚拟环境就不用重新安装一个Python库。一直用的是纯Python3.7,在纯Python3.7上面安装虚拟环境。 1 安装虚拟环境 pip3 install virtualenv 【虚拟环境是紧跟在一个目录下,并创建一个虚拟环境名字,所有的

zhulinniao 3039

攻防世界GFSJ1184_welcome_CAT_CTF

由于它是 PIE 可执行文件,程序加载地址会随机化,这导致你在 GDB 调试时需要处理地址偏移(如 0x246d 变成 0x55555540246d)。:client 程序通过网络连接(get_nc() 和 get_flag(nc))与 server 通信,server 监听在端口 8888。:client 依赖外部共享库(如 libstdc++.so),因此运行时需要这些库存在系统中。程序就是wasd移动,走到不同标记(* $ @ )下方,输入j回车,会有不同反应。两个文件client和server。

拥抱AI的老粽子 1265

中国知网文献引用导入EndNote9.X,Web of science导入endnote以及谷歌学术导入endnote图文详解,全网最细版本适用EndNote9.x,Endnote20版本

在科研中用到EndNote管理文献,遇到插入文献时,中国知网如何将参考文献导进Endnote9.x或者web of sicence,谷歌学术如何将文章,文献导入进文献管理软件EndNote的详细图文2022版本解释,全网最细的笔记教程,值得大家参考收藏学习

sakura的博客 5178

python 配置虚拟环境,多版本管理

在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.x。所有第三方的包都会被pip安装到Python3的site-packages目录下。 如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3。如果应用A需要python2.7,而应用B需要python 3怎么办? 这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。 一、virtu.

Rnan_prince的博客 1156

Adams与matlab联合仿真的一些小技巧

Adams与simulink联合仿真之快速设置初值 去年到现在一直做的两个项目要用到Adams与simulnk联合仿真,虽然网上有很多这方面的教程,但都比较基本,要实现一些稍微复杂的要求就比较困难了,比如我需要改变模型的初始位姿,原来的方式是在adams中设置,再生成联合仿真需要的文件,再在matlab中进行调用和仿真,如果工况多的话这样就特别耗时耗力,进过长时间的摸索,终于找出了在matlab中直接改变Adams模型参数的方法,下面具体说明一下。 我这里的模型是一个小球通过弹簧连接在坐标原点,仿真开始后

weixin_40962901的博客 4786

Virtualenv、pipenv、conda虚拟环境设置方法及原理

有个小插曲:我看到上面的图片上创建虚拟环境的解释器是用的anaconda的python3.7.6,我一直理解是通过系统变量里的python3版本创建,因为我没有把anaconda的python3添加到环境变量,出了这个情况我就检查了下原因,新建了一个文件夹并创建虚拟环境发现又回到python3.8,也就是添加到环境变量的那个python,不是集成anaconda里的python,想起是因为test文件夹刚才试过用conda的虚拟环境导致的问题。取消激活虚拟环境后,系统的环境变量就恢复成下面的样子了。

m0_73239875的博客 2545

【3d打印】基于Klipper的3d打印远程上位机系统(Qt),klipper源码,通信解析,打印参数设置

基于Klipper的3d打印远程上位机系统(Qt),klipper源码,通信解析,打印参数设置(启庞Kp3s V1)

共享IT之美,共创机器未来 3193

YOLOv8+ByteTrack实战:5分钟搞定多目标跟踪(附鱼群检测调参秘籍)

本文详细介绍了如何利用YOLOv8和ByteTrack快速实现多目标跟踪,特别针对鱼群检测等复杂场景提供参数调优秘籍。通过环境配置、核心机制解析和专项调优技巧,开发者可在5分钟内搭建高效跟踪系统,适用于水产养殖、交通监控等实际应用。文章还包含工程落地方案和性能优化建议,帮助实现精准的鱼群计数与行为分析。

e1f2g的博客 1019

virtualenv使用

virtualenv 使用准备查看是否安装:pip list | grep virtualenv(如果有就不需要安装)安装pip install virtualenv使用创建环境文件夹mkdir proj_dir_namecd proj_dir_name创建环境virtualenv --no-site-packages proj_env(就是把系统的响应的python程序复制一份)激活当前环境$p...

这里是标题 227

基于STM32L4XX的环境光传感器(LTR-303ALS-01)应用程序设计

/ 状态寄存器的位[2:0]表示数据状态,例如位2为1表示新数据就绪[citation:6]#define LTR303_REG_DATA_CH0_LOW 0x8D // CH0数据低字节。#define LTR303_REG_DATA_CH0_HIGH 0x8E // CH0数据高字节。#define LTR303_REG_DATA_CH1_LOW 0x8F // CH1数据低字节。#define LTR303_REG_DATA_CH1_HIGH 0x90 // CH1数据高字节。

myron6688的博客 406

PythonForBeginners 中文系列教程(十五)

pip 命令是一个安装和管理 Python 包的工具,比如那些在 Python 包索引中找到的。它是 easy_install 的替代品。split()方法使用分隔符将字符串分隔成单个单词,也称为分隔符。Python 使用空白作为默认分隔符,但是您可以自由地提供一个替代符。分隔符可以是任何东西,但通常是用来分隔字符串中单词的字符。例如,逗号通常用于拆分列表。split()函数将返回一个字符串列表。默认情况下,对返回列表的长度没有限制。但是你可以用maxsplit设置来改变它。

龙哥盟 1660

【反封禁策略】集成 Undetected-Chromedriver:让 Browser-Use 绕过 Cloudflare 五秒盾

摘要:AI Agent如何突破Cloudflare检测的实战指南 本文针对AI Agent在Cloudflare检测下频繁受阻的问题,深入分析了undetected-chromedriver的工作原理与局限性。文章指出,Cloudflare 2026年的检测体系已升级为"浏览器指纹+IP信誉+协议指纹+行为模式"的多维交叉验证,单一伪装方案难以奏效。 核心内容包括: undetected-chromedriver的三层补丁体系解析 v2与v3版本的适用场景对比 两种Browser-Use集成方案:Selen

ZDQ58818的博客 284

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

python第三方库系列之二十六--virtualenv库

python pip virtualenv

wenph2008的专栏 1498

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Python从小白到高手实现系列二百三十五:venv

此外,现在也可以用Python 代码直接创建新的环境,因为所有功能都包含在内置的venv 模块中。文档,但有些用户可能会认为它过于复杂,仍然在这一版本的Python 中继续使用Virtualenv。不幸的是,这一情况已发生变化。Python 3.3 版,切换到venv 可能需要付出更多的精力,因为这一版本在新环境中没有默认。之前没有详细说明的是,在buildout 早期版本(2.0.0 版之前)中,可以在隔离环境中。或venv,比较简单,但大型项目可能还需要buildout 的帮助,以便进行更复杂的装配。

Mr_Roki的博客 514

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

python会调用linuxapi吗_python3.8.0 Django 开发后端接口api 部署到 Linux Centos7上

经历了两天的时候终于把本地使用python3 django开发的接口API部署到服务器上了,还是记录一下,以免之后忘记,哈哈注意一点,就是,centos7是基于python2的,我这边默认的是python2.7.5,记住不要删除了python2,否则后果很严重,yum会报错,这是因为python3和python2版本的冲突导致的第一步,安装 python3 到 Centos7, 先安装软件管理包和...

weixin_42500684的博客 141

如何解决 pip install -r requirements.txt extras 语法 ‘package[extra’ 缺少 ‘]’ 解析失败问题

Python系列:PyCharm控制台pip install报错解决方案 摘要 本文针对PyCharm中执行pip install -r requirements.txt时遇到的package[extra]缺少右括号]的常见错误进行分析。文章详细解释了extras语法的正确书写规范(PEP 508标准),提供了快速修复方案,并扩展了模块安装、网络配置、路径设置等常见问题的解决方法。关键内容包括:extras语法正确写法、错误修复流程图、常见问题清单以及extras写法对照表。通过规范书写、使用pip-too

猫头虎技术团队:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:优快云WF,猫头虎承诺每年免费为100名C站创作者做账号流量诊断服务!全网搜:猫头虎技术团队,点击文章底部名片或直接私信我一切皆可谈,快找虎哥! 1031

Python编程入门:从基础语法到工程实践

Python作为一门高级编程语言,以其简洁的语法和强大的生态著称。其核心设计哲学强调代码可读性和开发效率,通过动态类型系统和丰富的内置功能降低编程门槛。在技术实现上,Python采用解释器模式运行,支持面向对象、函数式等多种编程范式。这种特性使其在快速原型开发、数据分析和自动化脚本等领域具有独特优势,特别是在机器学习、Web开发等热门方向拥有成熟的工具链(如TensorFlow、Django)。理解Python的虚拟环境管理、异常处理机制和性能优化技巧,能够帮助开发者构建更健壮的工程项目。本文以Python

weixin_34228387的博客 406

五十五、windows和Linux下虚拟环境的创建和使用

一、问题: 安装同一个包的不同版本,后安装的包会把原来安装的包覆盖掉。这样,如同一台机器上两个项目依赖于相同包的不同版本, 则会导致一些项目运行失败。 解决的方案就是:虚拟环境。 虚拟环境是真实python环境的复制版本。 在虚拟环境中使用的python是复制的python,安装python包也是安装在复制的python中。 二、Windows下安装虚拟环境的命令:(管理虚拟环境) ...

xk1761299425的博客 445

Python 开发者的新神器:uv 全面指南

pythonpipvenvPoetryPipenvCondaPDMRyePython版本管理虚拟环境包安装依赖解析项目管理LockfileCLI工具单文件脚本构建发布全部逐渐整合到一个工具中。你会发现整个 Python 项目的依赖管理过程变得非常简单。pip freeze开始体验。uv inituv lock“Python 生态里的 Cargo。而这可能才是 uv 真正有意思的地方。

萧鼎的博客 951

Python社区如何活过十五年:从披萨店到混合现实的技术共生实践

Python社区并非仅指开源项目或技术框架,而是一种以人为核心、以实操为纽带的协作范式。其底层逻辑在于通过固定节奏、低门槛参与和真实问题驱动,构建可持续的知识传递与信任网络。在基础设施原始(如早期无pip/virtualenv)、地域资源不均(如印第安纳波利斯非技术重镇)等约束下,社区反而发展出‘推键盘文化’与‘错误代码工作坊’等强互动机制,显著提升学习转化率与成员留存率。这种模式天然适配中小城市开发者、跨专业转岗者及Python赋能型用户,支撑起Django、Flask、Pandas等主流生态的本地化落地

weixin_33827731的博客 384

django学习

1 django简介 web阶段: -Django -Flask 虚拟化技术 (1)虚拟机 (2)虚拟容器 -Docker (3)虚拟环境 - Python专用 - 将Python依赖隔离,使用virtualenv进行依赖性隔离并使用pip安装所有库 django简介 官方网站:Getting started with Django | Django MVC设计模式(Model、View、 Controller...

weixin_45537413的博客 1286

flask——[个人学习日志]——2月15

2月15[个人学习日志]: 了解了什么是flask —— python web 框架 flask的两个主要依赖Werkzeug——WSGI工具集、Jinja2模板引擎。 本章涉及的python包:flask, pip, pipenv, virtualenv, pipfile, python-dotenv, watchdog 搭建开发环境 Pipenv工作流 安装pip和pipenv...

weixin_43326910的博客 139

Plone运维本质:ZODB事务与Zope运行时栈治理

ZODB不是传统数据库,而是一种基于多版本并发控制(MVCC)的对象存储系统,其事务ID(tid)机制构建了天然的时间机器式数据快照能力;Zope2则通过声明式zope.conf配置与产品注册生命周期,定义了Python Web应用的底层运行契约。理解ZODB事务模型、Zope组件加载时序和Plone三层权限叠加机制,是实现可审计、可回滚、零停机升级的关键技术基础。这类能力广泛适用于政务知识库、律所合规平台、科研文档系统等对数据一致性与操作追溯性要求严苛的场景,尤其在国产化替代与等保2.0落地过程中,成为系

chudan0503的博客 458
上一篇: VSCode中 Python3环境的设置
下一篇: Python爬虫(一)—爬虫的预备知识(爬虫概念、HTTP与HTTPS、请求与响应)
luoz_python
博客等级 码龄10年 57粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值