You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Python3.6(Anaconda)开发的SharePoint数据拉取代码部署至Python2.7遇障求助

问题拆解与解决方案

先搞懂:GitHub和Anaconda的cryptography包为啥不一样?

这俩本质上是同个库的不同分发形式:

  • GitHub上的是源码包:它只包含原始代码,需要在你的目标环境(这里是Python2.7)里编译生成适合该环境的二进制扩展文件(比如_constant_time这类C模块)。你直接拿源码用的话,没编译当然会缺文件。
  • Anaconda的是预编译二进制包:它是针对特定Python版本(比如你本地的3.6)和系统架构打包好的,里面已经包含了编译好的扩展模块。但Python2.7和3.6的C扩展ABI(应用二进制接口)不兼容,所以把3.6的包复制到2.7环境里,系统根本认不出那些编译后的文件,自然报“无法导入lib”。

解决Python2.7下cryptography安装问题的正确姿势

因为你不能升级生产环境的Python版本,只能安装支持Python2.7的cryptography旧版本——cryptography从3.0开始就放弃Python2支持了,所以我们要安装最后支持2.7的版本:2.9.2。

1. 先装系统编译依赖(针对Linux生产环境)

cryptography依赖C编译工具和SSL、FFI库,先把这些装上:

# Debian/Ubuntu 系统
sudo apt-get install build-essential libssl-dev libffi-dev python-dev

# RHEL/CentOS 系统
sudo yum install gcc openssl-devel libffi-devel python-devel

2. 升级pip到支持Python2.7的最后版本

Python2.7自带的pip版本太老,可能没法正确安装旧版cryptography,先升级:

pip install --upgrade pip==20.3.4

(20.3.4是最后支持Python2.7的pip版本)

3. 安装指定版本的cryptography

现在用pip安装适配Python2.7的版本:

pip install cryptography==2.9.2

4. 验证安装是否成功

在Python2.7终端里运行:

import cryptography
print cryptography.__version__  # 应该输出2.9.2,没报错就说明成了

额外:你的SharePoint代码要适配Python2.7

你的代码里有几处Python3的语法,在2.7里会报错,得改一下:

  • Python2.7里print是语句,不是函数,所以把所有print(xxx)改成print xxx(比如print(CustomLibraryPath) → print CustomLibraryPath,print (df.head()) → print df.head())
  • 还要确保requests_ntlm和shareplum也装了支持Python2.7的版本:
    pip install requests_ntlm==1.1.0
    pip install shareplum==0.5.1  # 这个版本支持Python2.7
    

内容的提问来源于stack exchange,提问作者Anshu Saket

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:55:52