Pip管理虚拟环境
Python从3.3版本开始,自带虚拟环境配置包venv
。虚拟环境下通过pip
命令下载的Python包不会影响到系统中的Python,可以做到项目之间环境的分离(目前Pycharm
新建环境默认使用这种方式)。
创建环境
| py -m venv environ |
| python -m venv environ |
上述命令创建虚拟环境environ
。
激活环境
- Windows:首先进入
Scripts
文件夹:cd environ/Scripts
。然后,激活环境:
- Linux:首先进入
bin
文件夹:cd environ/bin
。然后,激活环境:
之后进入虚拟环境:
| (environ) ...\environ\Scripts> |
在其中可以使用pip
下载处理。
退出环境
Pipenv管理虚拟环境
pipenv
基于Pipfile
记录依赖,自动管理Python虚拟环境。
可以通过pipenv --version
判断是否安装成功。
创建环境
此命令将在项目目录下生成文件Pipfile
和Pipfile.lock
,并自动生成虚拟环境;如果项目文件夹下已有Pipfile
(例如从Github上拉下来的项目),该命令将同步下载Pipfile
中的所有依赖项。在Linux系统中,虚拟环境文件夹默认放在~/.local/share/virtualenvs/
文件夹下,命名方式默认为项目名-随机字符串
。
pipenv可以指定虚拟环境的Python版本:
激活环境
退出环境
删除环境
请注意,删除环境后不会自动退出虚拟环境。
使用pipenv
- 获取虚拟环境位置:
pipenv --venv
。
- 获取项目位置:
pipenv --where
。
- 安装包到虚拟环境:
pipenv install 包名
。
- 从虚拟环境卸载包:
pipenv uninstall 包名
。
- 获取已安装包信息:
pipenv graph
。
Poetry管理项目
Poetry
是一个现代可扩展的Python依赖和版本管理器,下载方式:
创建项目
创建空项目
| poetry new <project-name> |
创建<project-name>
文件夹,并初始化为Hatch
结构的项目:
| <project-name> |
| ├── pyproject.toml |
| ├── README.md |
| ├── <project-name> |
| │ └── __init__.py |
| └── tests |
| └── __init__.py |
用Poetry管理已有项目
创建环境
默认将在~/.cache/pypoetry/virtualenvs/
下创建虚拟环境(见poetry-config
的virtualenvs.path
)。如果想在当前项目文件夹下创建虚拟环境,则执行
| poetry config virtualenvs.in-project true |
该命令将在当前项目文件夹下建立隐藏文件夹.venv
。
激活环境
退出环境
或者Ctrl+d
。
删除环境
依赖项管理
添加依赖项
将依赖项<deps>
添加到pyproject.toml
中并下载到虚拟环境。
通过本地文件(例如.whl
)下载:
| poetry add /my-package-0.1.0.tar.gz |
| poetry add /my-package-0.1.0.whl |
更新依赖项
更新poetry.lock
文件中的依赖项为最新版。如果其后跟依赖包名,则只更新提供的依赖。
poetry update requests
将只更新requests
包。
删除依赖项
显示当前已下载的依赖项
维护项目
配置
关于Python无法直接引用上层文件的处理方法
在虚拟环境的site-packages
文件夹下新建任意文件名的文件:<filename>.pth
,其内容为项目文件夹的绝对路径,例如:
| /home/user/bearpipy/Projects/HelloWorld |
在文件夹site-packages
下,应该已经具有文件_virtualenv.pth
。
在Python文件中,按照HelloWorld
文件夹的下一级文件为起点定位导入文件,例如HelloWorld
下有文件夹HelloWorld/views
和HelloWorld/utils
,则应该形如
| from views.··· import ··· |
| from utils.··· import ··· |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY