文章目录

  • 使用python虚拟环境,为什么要激活虚拟环境
    • 前置基础
      • python 模块和包的概念
        • Python 模块 (Module)
        • Python中的包
      • python依赖引入机制(搜索路径)、PYTHONPATH 变量
    • 使用python虚拟环境,为什么要激活虚拟环境

使用python虚拟环境,为什么要激活虚拟环境

前置基础

python 模块和包的概念

Python 模块 (Module)

Python 模块 (Module) ,是⼀个 Python ⽂件,以 .py 结尾,包含了 Python 对象定义和 Python 语句。
模块能定义函数,类和变量,模块⾥也能包含可执⾏的代码。
模块分类分为三种:
(1) 内置标准模块 (又称标准库),执行help(‘modules’)查看所有python自带模块列表。如sys、os、math等;
(2) 第三方开源模块 ,可通过“pip install 模块名”安装。 如numpy、Pandas、Matplotlib等;
(3) 自定义模块 ,即创建了一个.py文件,就可以称之为模块,可以在另一个程序里导入。即编辑好.py文件。

在 Python 中,每个 Python ⽂件都可以作为⼀个模块,模块的名字就是文件的名字。 也就是说⾃定义模 块名必须要符合标识符命名规则。

一个模块只会被导入一次,不管你执行了多少次import。这样可以防止导入模块被一遍又一遍地执行。

Python中的包

包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。

简单来说,包就是文件夹,但该文件夹下必须存在 init.py 文件, 该文件的内容可以为空。init.py 用于标识当前文件夹是一个包

python依赖引入机制(搜索路径)、PYTHONPATH 变量

当我们导入一个模块时: import xxx ,默认情况下python解释器对模块位置的搜索顺序是:搜索当前目录、已安装的内置模块和第三方模块。

模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。

PYTHONPATH 变量,以通过如下方式访问:

>>> import sys
>>> sys.path
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu','/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages','/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat',
'/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7','/usr/lib/python2.7/dist-packages/ubuntu-sso-client']

导入模块时搜索路径的顺序也可以改变.这里分两种情况:
1,通过sys.path.append(),sys.path.insert()等方法来改变,这种方法当重新启动解释器的时候,原来的设置会失效.

2,改变PYTHONPATH,这种设置方法永久有效:

使用python虚拟环境,为什么要激活虚拟环境

在使用Python虚拟环境时,建议您先激活该虚拟环境以确保您正在使用正确的Python解释器和相关依赖项如果您没有执行activate命令,直接使用虚拟环境中的Python解释器可能会导致依赖项问题或存在版本冲突等问题

/path/to/virtualenv/bin/python

这将直接启动虚拟环境中的Python解释器,而无需激活虚拟环境。但是,这种做法不是推荐的方式,因为它可能会导致应用程序出现依赖性问题和版本冲突,而且可能不稳定。

使用虚拟环境时,最好的做法是先激活虚拟环境,然后再运行您的 Python 代码。如果您不想手动激活虚拟环境,您可以将 activate 命令的路径添加到您的 shell 配置文件 (例如.bashrc 或 .zshrc),这样每次启动终端会话时,虚拟环境会自动激活,从而确保您始终在虚拟环境中运行 Python 程序。

激活虚拟环境,激活虚拟环境其实就是把当前虚拟环境python所在位置暂时配置到环境变量path中的首位,由于命令行是从环境变量path中自上而下查找所在路径,如果第一个找到,则不会往下继续查找,也就不会用到python全局环境。

我们可以查看激活虚拟化环境脚本activate中,有设置PATH、PYTHONPATH、PATHHOME等操作。

注:python虚拟环境并不一定激活后才可以运行python文件

使用python虚拟环境,为什么要激活虚拟环境相关推荐

  1. python安装虚拟环境没有activate_Python venv虚拟环境Activate的作用

    今天在处理其它需求时,发现只要用venv目录下的python.exe来解释py代码就可以正常运行.本来以为完事了,突然想起来,这样的话根本没有运行Activate命令,没有进入Python虚拟环境啊. ...

  2. Pycharm中anaconda创建激活虚拟环境出现错误:Your shell has not been properly configured to use ‘conda activate‘.

    Pycharm中anaconda创建激活虚拟环境出现错误:Your shell has not been properly configured to use 'conda activate'. 前言 ...

  3. 如何解决tmux下anaconda激活虚拟环境,python版本不对

    项目场景: 服务器下利用tmux创建窗口,运行.py文件 问题描述: python版本不符合导致出现bug 利用conda激活虚拟环境后,调用python测试任然是2.7 按照其他博主使用source ...

  4. Python环境:解决win10虚拟环境激活失败的问题

    问题描述: activate虚拟环境的时候,电脑win10系统由于其保护安全的执行策略,不支持该脚本的执行操作. 报错记录: PS C:\Users\Administrator\Desktop\ven ...

  5. 【Python】Flask 框架安装虚拟环境报错—处理中......

    Flask依赖两个外部库:Werkzeug 和 Jinja2 Werkzeug 是一个WSGI(在Web应用和多种服务器之间的标准Python接口)工具集,Jinja2负责渲染模板.所以在安装Flas ...

  6. 基于Python的应用程序的虚拟环境

    什么是虚拟环境? (What is Virtual Environment?) Virtual environments are very useful when the application re ...

  7. python创建虚拟环境_Python学习笔记:创建Python开发Web程序的虚拟环境

    学习Excel技术,关注微信公众号: excelperfect 这段时间利用业余时间在断断续续地看Eric Matthes著的<Python编程从入门到实践>这本书,毫不夸张地说,这真的是 ...

  8. Python开发不可不知的虚拟环境

    一.python3.3之后自带的venv模块 1. 创建虚拟环境 python3.6 -m venv project-env 2. 加入虚拟环境目录 cd pronject-env 3. 激活虚拟环境 ...

  9. python 在windows下的 虚拟环境

    解决 python 环境问题 windows 下安装 pip install virtualenv virtualenv的基本使用 1.1 创建虚拟环境 virtualenv venv 为环境指定Py ...

最新文章

  1. nginx 部署antd_design_pro
  2. Number of 1 bits
  3. 【沟通交流】弱关系向强关系的转变
  4. 算法—顺序表之列表的扩容机制(python实现)
  5. 解决spring整合mybatis时错误 ‘org.mybatis.spring.mapper.MapperScannerConfigurer#0‘
  6. 云+X案例展 | 电商零售类:WakeData助力叁拾加数字化变革
  7. jQuery模拟原生态App上拉刷新下拉加载
  8. 安卓逆向系列教程 4.13 MagSearch 1.8 爆破
  9. Swift中viewWeb执行JS
  10. 尚学堂马士兵servlet/JSP笔记(一、Http协议及WebApp初步)
  11. 通过cmd进行文件格式的转换
  12. Stimulsoft BI Designer创建报告和仪表板
  13. 互联网怎么赚钱 by taosay --集结贴
  14. 树莓派diy小型计算机,自制树莓派电脑,让树莓派不再神秘
  15. android 签名文件与sha1获取
  16. bzero()与 memset()等的区别
  17. 无法获取'https://jcenter.bintray.com/com/网站的资源
  18. 探秘双“11”征服马云刘强东的电商架构 !
  19. 剑指offer.01 数组中重复的数(0504刷题自用)
  20. 购物车之商品数量加加

热门文章

  1. FFplay源码分析-avformat_open_input
  2. Unity角色实时阴影方案
  3. 搜狗实习生报告: 我的实习成果让美国公司面试官震惊了
  4. 用matlab进行模糊综合评判
  5. ES text/keyword match/term/模糊查询区别
  6. Redis哨兵Sentinel
  7. 华硕K40in黑苹果更新USB热插拔支持
  8. python3 获取文件修改时间_ps无痕改字修改手写字文件改截图数字时间日期图去水印:制作鲜花装饰艺术文字图片效果的PS教程...
  9. photoshop cs6 for mac 破解方法
  10. DXF文件格式——ASCII DXF 文件