关于conda

一、背景

虽然很早之前就用anaconda或者 miniconda,但是只是配置了些基础环境,然后用用jupyter,在实战中,比如打开一个pycharm文件,选择的解释器还是python3.12这样。对于conda create -n xx 比较不熟,且大家都是直接一个requirments.txt文件,所以也就那样。补充:uv下载也很火~

不过其实直接python也能创建虚拟环境,主要区别是在下载某些包时,会缺少一些底层CTL这种拓展,而conda就能很好避免。

二、添加新的虚拟环境

  1. 点右上角 ⚙️ 齿轮 → Add...
  2. 左侧选 Virtualenv EnvironmentJetBrains
  3. 右侧选 New environment (新建)
    • Location :默认会填到项目里的 .venv 文件夹,直接用默认就行
    • Base interpreter :选你电脑上的 Python 3.12
    • 不要勾选:Inherit global site-packages(继承全局包)JetBrains
  4. OK → PyCharm 自动创建虚拟环境JetBrains

三、切换并生效

  1. 回到 Python Interpreter 页面,下拉框里选中刚创建的 .venv 解释器
  2. Apply → OK
  3. 底部 Terminal 会自动切换到虚拟环境(左边显示 (.venv)

四、把原来的依赖装到新环境(关键)

  1. 打开底部 Terminal

  2. 先看全局装了哪些包(可选):

    复制代码
    pip list
  3. 把你项目需要的包重新装一遍(只装项目用的):

    复制代码
    pip install 你的包名1 你的包名2 ...
    # 例如:
    pip install django requests pandas
  4. 生成依赖清单(以后发给别人用):

    python 复制代码
    pip freeze > requirements.txt

但是可能包含一些你项目并不需要的包(例如开发工具或其他项目的依赖)

使用 pipreqs 工具

pipreqs 是一个工具,它可以扫描你的项目目录,自动生成项目所需的依赖列表。

  1. 安装 pipreqs:

    pip install pipreqs

  2. 在项目根目录运行以下命令:

    pipreqs ./ --encoding=utf8 --force

    • ./ 表示当前目录。
    • --encoding=utf8 确保支持 UTF-8 编码。
    • --force 强制覆盖已有的 requirements.txt 文件。
  3. 生成的 requirements.txt 文件会类似于:

    flask==2.3.2 numpy==1.21.0 pandas==1.3.5 requests==2.26.0

五、验证是否成功

  • Terminal 左边显示 (.venv)
  • 运行代码,不再依赖全局 Python
  • 以后装包只会装在 .venv 里,不会污染全局

六、规范环境

注意点:有时候conda会强制使用它的conda,就会显得很乱,建议命令行安装,如下:

第 1 步:打开终端(就是你现在用的这个)

确保前面是 (base)

复制代码
(base) C:\Users\19319>

第 2 步:直接输入这条命令(复制粘贴)
复制代码
conda create -n qixiang python=3.12

y 确认

相关推荐
晴天167 分钟前
Rust 快速入门 (从 JavaScript 开发者视角)-Day09
开发语言·javascript·rust
卷无止境8 分钟前
拯救乱码方块:pandas 绘图中文字体的一揽子解决方案
后端·python
李昊哲小课17 分钟前
fastapi sse websocket 智能家居实时控制台
python·websocket·智能家居·fastapi·sse
杰佛史彦明 本王是暴君28 分钟前
PyTorch KernelAgent 源码解读 ---(2)--- 总体流程
人工智能·pytorch·python
步行cgn34 分钟前
carList.forEach(System.out::println)
java·开发语言·mybatis
Zane19941 小时前
别再手写 try/finally 了:一文讲透 with 语句背后的上下文管理器协议
后端·python
进击的程序猿~1 小时前
Go 内存分配与垃圾回收源码深度学习手册
开发语言·后端·golang
李可以量化1 小时前
量化高性能服务框架 Tornado 全面解析(上):异步非阻塞的核心能力与场景落地
大数据·python·量化交易·tornado·qmt·ptrade
geovindu1 小时前
go:Bit Operation Algorithm
开发语言·后端·算法·golang·位运算法
内蒙深海大鲨鱼1 小时前
3.Introduction to PyTorch YouTube Series--Autograd
人工智能·pytorch·python