1 Python虚拟环境和项目管理

Pip管理虚拟环境

Python从3.3版本开始,自带虚拟环境配置包venv。虚拟环境下通过pip命令下载的Python包不会影响到系统中的Python,可以做到项目之间环境的分离(目前Pycharm新建环境默认使用这种方式)。

创建环境

py -m venv environ # Windows
python -m venv environ # Linux

上述命令创建虚拟环境environ

激活环境

  • Windows:首先进入Scripts文件夹:cd environ/Scripts。然后,激活环境:
    ./activate
  • Linux:首先进入bin文件夹:cd environ/bin。然后,激活环境:
    source activate
    # bash下使用该命令,对于其他shell解释器例如fish等,请参考bin目录下其他相应文件

之后进入虚拟环境:

(environ) ...\environ\Scripts>

在其中可以使用pip下载处理。

退出环境

deactivate

Pipenv管理虚拟环境

pipenv基于Pipfile记录依赖,自动管理Python虚拟环境。

pip install pipenv

可以通过pipenv --version判断是否安装成功。

创建环境

pipenv install

此命令将在项目目录下生成文件PipfilePipfile.lock,并自动生成虚拟环境;如果项目文件夹下已有Pipfile(例如从Github上拉下来的项目),该命令将同步下载Pipfile中的所有依赖项。在Linux系统中,虚拟环境文件夹默认放在~/.local/share/virtualenvs/文件夹下,命名方式默认为项目名-随机字符串

pipenv可以指定虚拟环境的Python版本:

pipenv --python 3.10

激活环境

pipenv shell

退出环境

exit

删除环境

pipenv --rm

请注意,删除环境后不会自动退出虚拟环境。

使用pipenv

  • 获取虚拟环境位置:pipenv --venv
  • 获取项目位置:pipenv --where
  • 安装包到虚拟环境:pipenv install 包名
  • 从虚拟环境卸载包:pipenv uninstall 包名
  • 获取已安装包信息:pipenv graph

Poetry管理项目

Poetry是一个现代可扩展的Python依赖和版本管理器,下载方式:

pip install poetry

创建项目

创建空项目

poetry new <project-name>

创建<project-name>文件夹,并初始化为Hatch结构的项目:

<project-name>
├── pyproject.toml
├── README.md
├── <project-name>
│ └── __init__.py
└── tests
└── __init__.py

用Poetry管理已有项目

poetry init

创建环境

poetry install

默认将在~/.cache/pypoetry/virtualenvs/下创建虚拟环境(见poetry-configvirtualenvs.path)。如果想在当前项目文件夹下创建虚拟环境,则执行

poetry config virtualenvs.in-project true

该命令将在当前项目文件夹下建立隐藏文件夹.venv

激活环境

poetry shell

退出环境

exit

或者Ctrl+d

删除环境

poetry env remove --all

依赖项管理

添加依赖项

poetry add <deps>

将依赖项<deps>添加到pyproject.toml中并下载到虚拟环境。

通过本地文件(例如.whl)下载:

poetry add /my-package-0.1.0.tar.gz
poetry add /my-package-0.1.0.whl

更新依赖项

poetry update

更新poetry.lock文件中的依赖项为最新版。如果其后跟依赖包名,则只更新提供的依赖。

poetry update requests将只更新requests包。

删除依赖项

poetry remove <deps>

显示当前已下载的依赖项

poetry show

维护项目

  • 获取虚拟环境信息
    poetry env info
  • 获取当前项目版本
    poetry version
  • 更新当前项目版本
    poetry version <new-version>
    # 例如:poetry version "0.1.0"
  • 打包
    poetry build
  • 发布
    poetry publish

配置

  • 显示配置
    poetry config --list
  • 修改配置
    poetry config (<options>) <setting-key> <setting-values>
    可修改的配置见available-settings

关于Python无法直接引用上层文件的处理方法

在虚拟环境的site-packages文件夹下新建任意文件名的文件:<filename>.pth,其内容为项目文件夹的绝对路径,例如:

/home/user/bearpipy/Projects/HelloWorld

在文件夹site-packages下,应该已经具有文件_virtualenv.pth

在Python文件中,按照HelloWorld文件夹的下一级文件为起点定位导入文件,例如HelloWorld下有文件夹HelloWorld/viewsHelloWorld/utils,则应该形如

from views.··· import ···
from utils.··· import ···
posted @   皮皮罴  阅读(91)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示