关于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 确认

相关推荐
Csvn1 小时前
🐍 Day 6: Python 异常处理 — 防御式编程的核心
后端·python
朝发如雪1 小时前
快速掌握Linux(2)(时间相关函数)(文件IO)
linux·python·算法
苏子寒1 小时前
Nano-VLLM全代码解析笔记(2)-block_manager
人工智能·笔记·python·机器学习·nlp·vllm
杨丰玮4181 小时前
暑假Java知识点回顾:类与对象知识总结
java·开发语言
小猴子爱上树2 小时前
跨境电商图片翻译工具,跨马批量处理视频字幕与抠图
python·音视频
smj2302_796826522 小时前
解决leetcode第4033题有效K个不同元素子数组I
数据结构·python·算法·leetcode
Patrick在香港2 小时前
Python asyncio vs 多线程 vs 多进程——同一份 HKOpenDataClient 实测 5/30/100 endpoint,谁是真的银弹
开发语言·python
牛油果子哥q2 小时前
C++异常处理万字详解:try-throw-catch机制、栈展开、标准异常体系、自定义异常、工程规范、内存泄漏避坑
开发语言·jvm·c++
Metaphor6922 小时前
使用 Python 设置 Excel 文件属性
开发语言·python·excel
艾莉丝努力练剑2 小时前
【AI大模型接入SDK】C++日志体系与spdlog封装的理论部分
开发语言·c++·ide·人工智能·学习·面试·trae