DolphinDB Python API 离线安装教程

news2025/7/29 17:58:48

出于安全考虑,通常生产环境与互联网隔离,因此无法使用 pip install 在线安装 DolphinDB Python API(以下简称 Python API)。本文介绍如何离线安装 Python API 环境,包括 conda 环境和 wheel 安装两种方式。用户可根据生产环境的使用需求、应用场景自行选择。

1 环境准备

首先准备构建环境,包括在线环境与离线环境,其中在线环境用于在线收集和构建资源,离线环境用于离线安装与验证。

构建环境需要与目标环境尽可能的一致,包括操作系统版本、CPU 架构、Python 版本等。其中在线环境用于下载并构建各种资源,离线环境用于构建与测试 Python API 的安装包。

1.1 Linux 环境准备

推荐使用类似 virtual box 的虚拟化工具来制作环境。假设我们需要在 KyLin v10,x86-64, Python 3.8 的目标环境中安装 Python API,那么需要准备以下环境:

  • 在线环境

操作系统:KyLin v10

CPU:Intel(R) Core(TM) i7-10700 CPU @ 2.90GHz

主机平台:VirtualBox 6.1

网络:NetWork Bridge

  • 离线环境

操作系统:KyLin v10

CPU:Intel(R) Core(TM) i7-10700 CPU @ 2.90GHz

主机平台:VirtualBox 6.1

网络:HostOnly

其中 HostOnly(仅主机模式)的网络模式可以保证该机器与互联网无法连接。

1.2 Windows 环境准备

Windows 环境可以准备两台机器(可以是 PC),一台用于在线获取资源,并禁用另一台机器的网络进行离线安装测试。有关 Windows 下安装和配置 Conda 环境,详见 Windows 安装。

2 Linux conda 安装

2.1 安装 miniconda

推荐使用 miniconda,通常生产环境比较复杂,需要虚拟环境以保证隔离性。

Miniconda — conda documentation

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
sh Miniconda3-latest-Linux-x86_64.sh

安装并激活 base 虚拟环境。

source ~/.bashrc

使用 conda env list 验证安装已完成:

2.2 配置 miniconda

分别配置在线、离线环境的 conda:

  1. conda 环境配置
conda config    // 在 ~/目录下会出现文件 .condarc
  1. 编辑 ~/.condarc 文件
show_channel_urls: true envs_dirs:   - ~/envs pkgs_dirs:   - ~/pkgs

2.3 在线环境下载包

  1. 运行以下命令下载 package
conda create -n test38 numpy=1.22.3 pandas python=3.8.13 --download-only

要求 numpy 为1.18到1.22.3之间的版本, 推荐使用1.22.3版本。

2. 压缩并上传 package

压缩 .condarc pkgs_dirs 路径下的依赖包,并上传至离线环境的 pkgs 目录。

tar -zcvf pkgs.tar.gz pkgs/
 md5sum pkgs.tar.gz > pkgs.tar.gz.md5

2.4 离线安装 conda 环境

  1. 上传至离线环境后,需检查下完整性:
(base) root@peter-VirtualBox:~# md5sum -c pkgs.tar.gz.md5
pkgs.tar.gz: 成功

2. 校验完整性通过后,再解压:

tar -zxvf pkgs.tar.gz

3. 创建虚拟环境:

conda create -n offline38 numpy pandas python=3.8.13 --offline
conda activate offline38

2.5 安装 DolphinDB Python API

1. 下载 whl 包

根据 CPU 架构、操作系统,从官方网站 pypi.org 下载对应的 Python API 安装包。

对应 x86_64, Python3.8 的包:

下载链接

2. pip 离线安装

pip install dolphindb-1.30.19.2-cp38-cp38-manylinux2010_x86_64.whl

3. 验证安装是否成功

(offline38) root@peter-VirtualBox:~# python
Python 3.8.13 (default, Mar 28 2022, 11:38:47)
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import dolphindb as ddb
>>> s = ddb.session()
>>> s
<dolphindb.session.session object at 0x7fa5d6534280>

能正常生成 session 就说明已安装成功安装 Python API。

3 Linux wheel 安装

3.1 在线环境收集 wheel 包

使用 pip wheel 命令收集相关 whl 包:

pip install wheel && pip wheel dolphindb

执行完成后,默认会在当前目录保存相关 whl 包。

(py38) [root@node1 ~]# ls *.whl|sort
dolphindb-1.30.19.2-cp38-cp38-manylinux2010_x86_64.whl
future-0.18.2-py3-none-any.whl
numpy-1.22.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
pandas-1.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
python_dateutil-2.8.2-py2.py3-none-any.whl
pytz-2022.2.1-py2.py3-none-any.whl
six-1.16.0-py2.py3-none-any.whl

3.2 离线环境安装 wheel 包

pip install *.whl
(py38) root@peter-VirtualBox:~/wpkgs# pip install *.whl
Processing ./dolphindb-1.30.19.2-cp38-cp38-manylinux2010_x86_64.whl
Processing ./future-0.18.2-py3-none-any.whl
Processing ./numpy-1.22.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Processing ./pandas-1.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Processing ./python_dateutil-2.8.2-py2.py3-none-any.whl
Processing ./pytz-2022.2.1-py2.py3-none-any.whl
Processing ./six-1.16.0-py2.py3-none-any.whl
Installing collected packages: pytz, six, numpy, future, python-dateutil, pandas, dolphindb
Successfully installed dolphindb-1.30.19.2 future-0.18.2 numpy-1.22.3 pandas-1.5.0 python-dateutil-2.8.2 pytz-2022.2.1 six-1.16.0

3.3 安装后验证

分别验证一下 whl 包和 Python API。

  • pip list
(py38) root@peter-VirtualBox:~/wpkgs# pip list
Package         Version
--------------- ---------
certifi         2022.9.14
dolphindb       1.30.19.2
future          0.18.2
numpy           1.22.3
pandas          1.5.0
pip             22.1.2
python-dateutil 2.8.2
pytz            2022.2.1
setuptools      63.4.1
six             1.16.0
wheel           0.37.1
  • Python API
(offline38) root@peter-VirtualBox:~# python
Python 3.8.13 (default, Mar 28 2022, 11:38:47)
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import dolphindb as ddb
>>> s = ddb.session()
>>> s
<dolphindb.session.session object at 0x7fa5d6534280>

能正常生成 session 就说明安装成功。

4 Windows conda 安装

分别在离线环境、在线环境安装并配置好 miniconda 环境。并通过在线环境构建

  • dolphindb 依赖包
  • dolphindb wheel 包

并上传至离线环境,来完成安装。

注:miniconda 的安装和配置分别在在线环境和离线环境完成,且目录名称须一致。

4.1 安装 miniconda

选择对应 Python 版本的 minicoda,下载 Miniconda3 Windows 64-bit 并安装。安装完成后,将 conda 加入 Windows 命令搜索路径:

​ 此电脑 → 属性 → 查找设置 → 输入: 编辑系统环境变量 → 环境变量 → 系统环境变量

新建中输入 condabin 目录的完整路径,如:

D:\ProgramData\Miniconda3\condabin

点击确定,新开 cmd 窗口验证

C:\Users\wfhuang>conda -V
conda 4.12.0

4.2 配置 miniconda

设置包路径,如 D:\pkgs

D:\pythonApi>conda config --add pkgs_dirs D:\pkgs

4.3 在线环境下载包

参考4.2,在在线环境中配置好包路径,并下载 DolphinDB 相关依赖包

conda create -n test38 numpy=1.22.3 future pandas python=3.8.13 --download-only

在设置的 pkgs_dirs 中,会有存放相关依赖包。压缩后,包大小约为450MB

4.4 离线安装 conda 环境

  1. 将pkgs压缩包上传至离线环境,比较包的所占字节数,验证包是否完整。
  2. 校验完整性通过后,再解压至 pkgs 目录、创建虚拟环境:
conda create -n offline38 numpy pandas future python=3.8.13 --offline
conda activate offline38

4.5 安装 Python API

  • 下载 whl 包

根据 CPU 架构、操作系统,从官方网站 DolphinDB 下载对应的 Python API 安装包。

对应 Windows, x86_64, Python3.8 的包:

https://files.pythonhosted.org/packages/62/ff/382aff0a2add9ce5c779c14d0d7fbfcec62ab0748b5778731a7fe524c2af/dolphindb-1.30.19.2-cp38-cp38-win_amd64.whl

  • pip 离线安装
pip install dolphindb-1.30.19.2-cp38-cp38-win_amd64.whl

  • 验证安装是否成功
import dolphindb as ddb
s = ddb.session()
s.connect("192.168.1.157", 8848, "admin", "123456")
s.run("print(\"Welcome to DolphinDB!\")")
s.close()

D:\pythonApi>python hello_ddb.py
Welcome to DolphinDB!

输出欢迎信息说明安装已经成功。

5 Windows wheel 安装

配置一个与目标环境相同的构建环境。例如目标环境是 x86-64, Windows server 2016, Python 3.8.10,那么可以准备一个 x86-64, Windows 10, Python 3.8.10 的 PC 环境。

5.1 在线环境收集 wheel 包

收集 Python API 的 wheel 包,并生成清单文件 requirements.txt。

1. pip wheel

使用 wheel 在当前环境构建相关 whl 包,并解决相关依赖。

pip wheel dolphindb -i https://pypi.tuna.tsinghua.edu.cn/simple

使用 -i 可以指定镜像源加速构建,例如中国地区可以选择清华源。执行完成后,默认会在当前目录保存相关 whl 包。

2. pip install

安装 Python API,用于生成依赖清单文件 requirements.txt。

pip install dolphindb -i https://pypi.tuna.tsinghua.edu.cn/simple

3. pip freeze

使用 freeze 解析 Python API 的依赖,并输出至文件 requirements.txt。

pip freeze dolphindb > requirements.txt

上述步骤完成后,目录类似如下(不同版本会有差异)。

5.2 离线环境安装 wheel 包

将相关 whl 包、requirements.txt 上传至 Python 离线环境,并通过 pip install 安装,

使用 -r 选项从指定的清单文件 requirements.txt 中批量安装 wheel 包。

pip install -r requirements.txt

D:\pythonApi>pip install -r requirements.txt
Processing d:\pythonapi\dolphindb-1.30.19.2-cp38-cp38-win_amd64.whl
Processing d:\pythonapi\numpy-1.22.3-cp38-cp38-win_amd64.whl
Processing d:\pythonapi\pandas-1.5.1-cp38-cp38-win_amd64.whl
Processing d:\pythonapi\python_dateutil-2.8.2-py2.py3-none-any.whl
Processing d:\pythonapi\pytz-2022.6-py2.py3-none-any.whl
Processing d:\pythonapi\six-1.16.0-py2.py3-none-any.whl
Collecting future==0.18.2
  Using cached future-0.18.2-py3-none-any.whl
Installing collected packages: six, pytz, python-dateutil, numpy, pandas, future, dolphindb
Successfully installed dolphindb-1.30.19.2 future-0.18.2 numpy-1.22.3 pandas-1.5.1 python-dateutil-2.8.2 pytz-2022.6 six-1.16.0

5.3 安装后验证

分别验证下 whl 包和 Python API 。

  • pip list
C:\pythonApi>pip list
Package         Version
--------------- ---------
dolphindb       1.30.19.2
future          0.18.2
numpy           1.22.3
pandas          1.5.1
pip             21.1.1
python-dateutil 2.8.2
pytz            2022.6
setuptools      56.0.0
six             1.16.0
  • 验证安装是否成功
import dolphindb as ddb
s = ddb.session()
s.connect("192.168.1.157", 8848, "admin", "123456")
s.run("print(\"Welcome to DolphinDB!\")")
s.close()

D:\pythonApi>python hello_ddb.py
Welcome to DolphinDB!

输出欢迎信息说明安装已经成功。

6 总结

总体而言,wheel 包安装比较简单快捷,而 conda 安装相对复杂,但是可以构建一个隔离环境。

安装方式优点不足
conda提供虚拟环境整个安装包大概在500M左右,上传至生产环境比较耗时,且需要校验完整性
wheel简单快捷,安装包小无法提供虚拟环境,可能与现有的 Python 环境相冲突

7 附录

7.1 pip 常用命令

pip list // 列出当前安装的包
pip freeze packageA // 列出 packageA 的依赖信息
pip wheel packageA  // 构建 packageA 的依赖 wheel 包
pip search packageA // 在官方仓库 PyPI 搜索 packageA

7.2 conda 常用命令

  • 离线创建虚拟环境
conda create -n py38 python=3.8.13 --offline
  • 激活/关闭虚拟环境
conda env list //查看所有虚拟环境
conda activate py38 //激活 py38
conda deactivate //退出当前虚拟环境
  • 清理并删除 conda 环境:
conda deactivate
conda remove -n offline38 --all

7.3 常见问题处理

Q: conda 离线安装缺失包

PackagesNotFoundError: The following packages are not available from current channels:
  - pandas
  - python=3.8.13
  - numpy

A: 检查下 pkgs_dirs 是否设置正确,以及在该目录下是否有提示信息中的包。不能有任何中间目录,例如设置 conda 的包目录为 pkgs,那么 pkgs/pkgs/numpy 是无法被 conda 找到的。

Q: wheel 包未安装

error: invalid command 'bdist_wheel'

A: 使用 pip 安装 wheel

pip install wheel

Q: future 包缺失

Failed to build future
ERROR: Failed to build one or more wheels
WARNING: Ignoring invalid distribution -ip (d:\program files\python3.7\lib\site-packages)

A: 可以手动收集下 future 包,并上传至离线环境。

pip wheel future

Q: 构建 future whl 包失败

Failed to build future
ERROR: Failed to build one or more wheels
WARNING: Ignoring invalid distribution -ip (d:\program files\python3.7\lib\site-packages)

A: 因 pip 下载、安装未成功而导致的环境异常,进入 pip --version 输出信息中的 site-packages/pip 目录,删除~开头的一些临时文件。

(base) [root@node1 ~]# pip --version
pip 21.2.4 from /root/miniconda3/lib/python3.9/site-packages/pip (python 3.9)

Q: Python API 安装失败

ERROR: Could not find a version that satisfies the requirement dolphindb (from versions: none)

A: 安装环境与 whl 包不匹配导致。可以按如下步骤处理:

  1. 通过 PyPI 确认是否存在支持当前操作系统(例如 Linux ARM 架构、Mac M1等)的 DolphinDB API 安装包。若存在,则将该 whl 包下载至本地。
  2. 通过如下命令查看适合当前系统环境支持的 whl 包后缀。
pip debug --verbose
  1. 根据 Compatible tags 的显示信息,将 DolphinDB 的 whl 包名修改为适合系统架构的名称。以 Mac(x86_64) 系统为例:安装包名为“dolphindb-1.30.19.2-cp37-cp37m-macosx_10_16_x86_64.whl”。但查询到 pip 支持的当前系统版本为10.13,则使用“10_13”替换 whl 包名中的“10_16”。
  2. 尝试安装更名后的 whl 包。

若执行完上述操作后,仍无法安装或导入,可在 DolphinDB 社区 中进行反馈。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/16265.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RobotFramework 接口测试实战落地

目前我在负责一个APP的测试工作。在项目中使用 RobotFramework作为工具搭建接口自动化框架&#xff0c;进行接口自动化的工作。 本文将从我个人对接口测试和自动化框架的理解以及RobotFramework在实际项目中落地两个大方面进行讲解。 对接口测试的理解 浅谈接口自动化框架 …

图片批量转为PDF怎么转?这些方法亲测实用

你们平时在整理照片的时候&#xff0c;有把多张图片转为PDF文件的需求吗&#xff1f;我因为工作需要&#xff0c;会拍摄和存储很多照片&#xff0c;而且经常需要将这些照片归类&#xff0c;整合到一个PDF文件中。可能有的小伙伴还不知道多张图片转PDF怎么转&#xff1f;别着急&…

2022全球智慧城市大会 升哲科技:以人为核心推动智慧城市建设

11 月 15 日 至 16 日&#xff0c;“全球智慧城市大会 成都”在成都召开。此次会议主题为“人民 激活 城市”&#xff0c;与“全球智慧城市大会 巴塞罗那”同期举办&#xff0c;采用线上与线下结合模式&#xff0c;链接全球 80 多个国家 600 多座城市参会代表。升哲科技&am…

三冲IPO的思派健康如何承载腾讯的互联网医疗梦?

腾讯在互联网医疗领域的“大将”思派健康10月27日向港交所主板递交第三次上市申请&#xff0c;在2021年8月6日和2022年2月25日两次“折戟”港交所后&#xff0c;此次能否如愿以偿仍未可知。 我国当前正步入老龄化社会&#xff0c;慢性病人口增加&#xff0c;市场对医疗健康方面…

2000年-2020年31省市城乡收入差距泰尔指数

2000年-2020年31省市城乡收入差距泰尔指数 1、来源&#xff1a;统计NJ和各省NJ 2、时间区间为2000-2020年 3、指标包括&#xff1a;居民人均可支配收入、城镇家庭可支配收入、农村家庭可支配收入、总人口、城镇化率、城镇总人口、农村总人口、城镇总收入、农村总收入、总收…

CAS:73342-16-2,Azide-PEG-Hydroxy,N3-PEG-OH,叠氮PEG羟基

化学试剂叠氮-聚乙二醇-羟基&#xff0c;其英文名为Azide-PEG-Hydroxy&#xff0c;N3-PEG-OH&#xff0c;它所属分类为Azide PEG Hydroxyl PEG。 叠氮PEG羟基的分子量均可定制&#xff0c;有&#xff1a;叠氮-PEG 3400-羟基、N3-PEG 2000-OH、N3-PEG 1000-OH、叠氮-聚乙二醇 1…

17.Redis系列之快照RDB方式持久化

本文学习redis两大持久化技术之一&#xff1a;RDB&#xff08;redis database&#xff09;快照方式持久化备份与还原&#xff0c;以及RDB方式的优缺点 1. RDB相关配置 首先我们先简单了解下Redis7中RDB相关配置 // save <seconds> <changes> [<seconds> &…

Python理论之一 —— 数据读写

文章目录1. Excel1.1 openpyxl 模块1.1.1 打开表格、读取/获取信息1.1.1.1 打开表格、获取表格内sheet名&#xff1a;1.1.1.2 根据sheet名获取工作表1.1.1.3 获取表格的尺寸大小&#xff1a;尺寸大小指excel表格中的数据有几行几列1.1.1.4 获取表格内某个格子的数据&#xff1a…

电影《扫黑行动》观后感

上周看了电影《扫黑行动》&#xff0c;讲述三年扫黑除恶专项行动中的一个具体事件。 记得前几年&#xff0c;估计你也听过类似新闻&#xff0c;就是大学贷&#xff0c;学生贷等等系列&#xff0c;面向学生的贷款&#xff0c;借钱的人明知道&#xff0c;学生一般是没有偿还能力的…

在家每次开门都安心,在外也能芝麻开门——云米AI智能门锁Super 2体验

很多人都遇到过出门忘带钥匙的尴尬&#xff0c;好在如今有了智能门锁这种看家好工具&#xff0c;既可以通过密码、指纹等多种方式轻松开锁&#xff0c;又可以随时通过手机APP来查看异常情况&#xff0c;确实是现在居家必备的好东西。这个月我也把家里大门上不太好用的老锁&…

IPWorks WebSockets Delphi版

IPWorks WebSockets Delphi版 IPWorks WebSocket包括一组功能强大的组件&#xff0c;用于将WebSocket通信功能集成到Web、桌面和移动应用程序中。这些组件非常适合构建需要实时数据的Web连接应用程序&#xff0c;包括聊天、多人游戏、实时金融应用程序等。 IPWorks WebSockets功…

Linux18 ---进程和线程、线程实现方法、线程的使用接口、多线程代码实现、线程并发运行

一、进程和线程&#xff1a; 1、进程和线程的相关概念&#xff1a; 进程&#xff1a;是一个正在运行的程序&#xff0c;是个动态的概念。一个进程可以实现多个线程。 线程&#xff1a;是进程内部的一条执行路径或称为执行序列&#xff0c;不同平台下线程的实现机制不相同&am…

基于Android车载系统模块资料

在从事车载Android应用开发前&#xff0c;必须要对汽车座舱的基本结构有一个大体的认知&#xff0c;只有意识到汽车座舱是一种与手机完全不同的架构&#xff0c;才能更好的助力我们日后学习车载Android应用的开发。下面就来介绍一个比较主流的车载操作系统架构。 注意&#xff…

Unity实现一个可扩展的UGUI无限滑动列表控件

采用 缓存池存储布局坐标 实现的一个可横向或纵向滑动的无限滑动列表 Demo展示&#xff1a; 功能支持&#xff1a; 可以满足大部分如背包&#xff0c;商店商城&#xff0c;工具栏&#xff0c;任务栏窗口等列表功能 支持整个列表刷新或单个对象刷新支持横向多行滑动&#xff…

【Python】快速入门

目录 基础储备 Python输出&#xff1a; Python换行&#xff1a; Python命名规则&#xff1a; Python变量: Python运算&#xff1a; Python注释&#xff1a; 小点&#xff1a; Python的两种模式&#xff1a; Python的用户问答互动程序&#xff1a; Python条件语句 P…

Kubernetes-in-action (一)

Kubernetes-in-action (一) 链接为书内容中对应代码的地址&#xff1a;https://github.com/luksa/kubernetes-in-action 前置之 docker 基础 安装docker使用docker安装镜像、进入镜像&#xff0c;查看进行信息docker build -t kubia . # 使用当前目录的Dockerfile构建镜像&…

m基于Matlab的fir和iir数字滤波器的设计与仿真

目录 1.算法概述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法概述 MATLAB系统供了许多工具箱&#xff08;Toolbox&#xff09;&#xff0c;借助于信号处理工具箱&#xff08;signal processing&#xff09;中的freqz_m&#xff0c;remez等函数&#xff0…

软件测试 | 测试工程师都能看懂的redis,进阶测试开发工程师......

目录&#xff1a;导读前言一、Redis是什么&#xff1f;为啥性能好&#xff1f;二、数据类型&#xff1f;常见的命令&#xff1f;1、String 字符串类型2、Hash 数据类型3、List 链表数据4、Set 无序集合类型5、Zset 有序集合类型三、有几种持久化方式&#xff1f;优缺点?四、数…

Flink-输出算子(Sink)使用

5.5 输出算子 5.5.1 概述 print也是一种输出类PrintSinkFunction 创建了一个PrintSinkFunction操作&#xff0c;然后调用addSink方法的作为传入参数 PrintSinkFunction这个类继承自RichSinkFunction富函数类 RichSourceFunction类 继承了AbstractRichFunction富函数类 …

springboot2整合开发流程示例

1.整体开发逻辑 初始配置示例 开发文件示例 2.开发过程问题 ①默认配置路径 thymeleaf默认解析静态资源路径为 /templates/** ②mybatisplus核心工作原理 mapper继承的BaseMapper中声明了CRUD操作service接口继承的IService接口中抽象方法简单封装了CRUD操作 传入了类&a…