当前位置: 首页 > news >正文

anaconda python降级_【环境搭建】Docker做Python环境版本控制

69da6de6f40ec5e6ff4c30e577cf2fac.png

问题背景

策略研发的python环境依赖众多的包,包与包,包与python以及conda的兼容性在生产环境中可能会冷不丁的冒出一个问题

  • conda在安装新包的时候会solve environment,使得有些包升级,有些包降级,带来了之前写的代码可能不可用
  • 数据以pickle的形式进行存储,这样新版本写的数据老版本(可能是集群的版本,升级涉及很多操作)无法读取

因此这里考虑版本的控制

注意事项

conda install命令会擅自更新依赖库的版本(如:pandas,numpy等)导致版本不兼容,因而建议使用pip进行安装,或者conda指定版本进行安装:conda install package_name=xxx.yy.zz

实际操作

这里利用docker来实现跨平台的环境统一:基础的镜像使用jupyter/datascience-notebook, 在此基础上构建自己的镜像:

FROM

orca的安装需要下载orca和chrome到Dockerfile所在的目录,这里自行决定即可,不用的话把对应的部分删除即可(本文的另一个目的也是为了做备份所以贴的是我们完整的配置);

  • 构建镜像
# 构建
  • 运行
#!/usr/bin/bash

关于Windows

对于金融数据而言,很多第三方数据仅提供Windows下的API,所以还需要针对WIndows也做一份版本控制的环境,为此这里的技术路线采用的是直接打包一个稳定可运行的环境然后使用的时候直接下载压缩包,解压;其中有些小问题要处理一下,如下:

  • 第一步:下载zip文件(OP打包好放在内网)放到安装位置,比如:D:Anaconda3
  • 第二步: 配置环境变量到Path(右键计算机/此电脑->属性->高级系统设置->环境变量->选中Path点编辑
    • 添加:D:Anaconda3、D:AnacondaaScripts、D:Anaconda3Librarybin
  • 第三步:由于环境的变化,kernel的路径也会变化,需要让jupyter找到正确的kernel路径
    • Step1: 首先打开Anaconda Prompt
    • Step2: 输入jupyter kernelspec list查看安装的内核和位置
    • Step3: 进入安装目录,打开kernel.jason, 查看python的编辑器的路径文件是否与安装路径一样,比如改为:"D:Anaconda3python.exe"
    • Step4: 刷新页面即可,如果还是不行的话可以重启jupyter notebook

相关文章:

  • centos redis make 报错_memcached和redis的初步了解
  • windbg分析dmp蓝屏文件_推荐收藏 | 几种常见电脑蓝屏的解决方案
  • linux查看剩余多少内存_内存性能篇-swap的概念
  • python小课文件_使用python实现一个(文件版)简单的课程管理系统
  • mfc在原页面的基础上增加一个页面并保存原来内容_简悦 1.1.4 发布了,它已经是一个即将满 1000 天的「老」产品了,这里有关于它的一些记忆...
  • python列表、元组、字典和集合的算法时间_Python中序列,列表,元组,字典及集合...
  • python自动处理文档_用Python完成一件小事:自动生成文档报告
  • htmlcss实例小项目_HTMLCSS学习笔记(一)-- 入门介绍
  • drools规则引擎可视化_几大工作流引擎对比
  • python3检测文件的编码格式_python判断文件的编码格式是否为UTF8 无BOM格式
  • git-2.29.2.2-64-bit安装_FairRoot安装注意事项
  • java执行sql文件_Mybatis进阶笔记:架构概述与基本执行流程梳理
  • catia二次开发_CATIA二次开发文件双手奉上,重命名非参后的CATPart
  • admin manager_Hadoop - 企业级大数据管理平台CDH(安装cloudera-manager)
  • python如何打印字符串_python 中 打印及格式化字符串的相关方法
  • [LeetCode] Wiggle Sort
  • CSS相对定位
  • Druid 在有赞的实践
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • JavaScript 基础知识 - 入门篇(一)
  • Linux快速复制或删除大量小文件
  • ng6--错误信息小结(持续更新)
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • Rancher如何对接Ceph-RBD块存储
  • React+TypeScript入门
  • 从伪并行的 Python 多线程说起
  • 二维平面内的碰撞检测【一】
  • 分布式任务队列Celery
  • 使用 QuickBI 搭建酷炫可视化分析
  • 手写双向链表LinkedList的几个常用功能
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​批处理文件中的errorlevel用法
  • # 数论-逆元
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • (1)STL算法之遍历容器
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (42)STM32——LCD显示屏实验笔记
  • (arch)linux 转换文件编码格式
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (顺序)容器的好伴侣 --- 容器适配器
  • (一)为什么要选择C++
  • (转)创业家杂志:UCWEB天使第一步
  • .net 8 发布了,试下微软最近强推的MAUI
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET企业级应用架构设计系列之结尾篇
  • .NET业务框架的构建
  • @reference注解_Dubbo配置参考手册之dubbo:reference
  • [BUUCTF NewStarCTF 2023 公开赛道] week3 crypto/pwn