在 Windows 上通过 pip 使用 fastmath(gmp 或 mpir)构建 PyCrypto

2024-04-23

我通过 pip 在 Windows 上安装了 PyCrypto,但无法构建 Crypto.PublicKey._fastmath,因为找不到 GMP。

我知道有一个二进制版本虚空 http://www.voidspace.org.uk/python/modules.shtml#pycrypto但我想构建最新版本的 PyCrypto


以下是实现您目标的一种方法。还有其他可能更好的方法(例如基于 Visual Studio),但这个方法对我有用。此外,它不使用pip.

所有操作均在命令提示符下进行。

  1. Install Mingw http://www.mingw.org/,包括MSYS和开发工具包。这将为您提供一个相当完整的类 Unix 开发环境。
  2. 确保 Mingw 二进制文件位于 PATH 环境变量中。你需要MinGW\bin and MingGW\msys\1.0\bin.
  3. 下载MPIR http://www.mpir.org/临时目录中的源。你这样做很重要not使用 2.5.1,因为一个错误会破坏构建。 2.5.0 没问题。
  4. 构建 MPIR 库。这相当简单:执行bash configure其次是make.
  5. HACK #1 Copy libmpir.a from mpir-2.5.0\.libs into C:\Python2.7.1\libs。这是必要的,因为distutils已损坏,我找不到将其定向到正确的库位置的方法。
  6. HACK #2 Edit C:\Python2.7.1\Lib\distutils\cygwincompiler.py并删除任何出现的字符串-mno-cygwin。原因已解释here http://www.secker.nl/2012/03/08/setup-python-2-7-2-and-mingw-on-windows-xp/.
  7. 下载PyCrypto https://www.dlitz.net/software/pycrypto/源并将它们解压到另一个临时目录中。
  8. Set CPPFLAGS环境变量添加到 MPIR 目录,其中包含mpir.h.
  9. HACK 3 Edit setup.py并添加以下行build_extension方法:

    self.__add_compiler_option(os.environ['CPPFLAGS'])

  10. Run bash configure。您应该看到两行内容:

    检查 -lgmp 中的 __gmpz_init... 否
    检查 -lmpir 中的 __gmpz_init...是的

  11. Execute python setup.py build -c mingw32。您应该不会看到任何错误。
  12. Execute python setup.py test以验证一切正常。
  13. Execute python setup.py install将文件复制到本地 Python 存储库中。
  14. 或者,运行python setup.py bdist_wininst创建安装程序。

我真的很讨厌所有各种各样的黑客行为,我很想听听是否可以避免它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Windows 上通过 pip 使用 fastmath(gmp 或 mpir)构建 PyCrypto 的相关文章

  • Python数据框将列表列分解为多行[重复]

    这个问题在这里已经有答案了 我有一个像这样的数据框 desc id info a b c 2 type u v w 18 tail 三列 desc id info desc 是一个列表 我想要这个 des id info a 2 type
  • 如何在Python中每次运行脚本时增加变量?

    我有一个 Python 脚本 我想在每次运行时增加一个全局变量 这可能吗 使用外部文件很容易做到这一点 您可以创建一个函数来为您执行此操作 这样您就可以根据需要将多个文件用于多个变量 尽管在这种情况下您可能想要研究某种序列化并将所有内容存储
  • SQLAlchemy 闭包表关系定义

    我最近开始使用 SQL Alchemy 开展一个涉及攀岩区域和路线的项目 区域是分层的 因为单个区域可以包含多个区域 而多个区域又可以包含其他区域 路线直接与单个区域关联 但也与该区域的父区域关联 等等 为了实现这一点 我选择使用Bill
  • Pythonic方式逐行读取文件?

    以下两种方法中逐行读取文件的 Pythonic 方法是什么 with open file r as f for line in f print line or with open file r as f for line in f read
  • chrome_options.binary_location() TypeError: 'str' 对象不可调用

    我希望每个人都好 我是 python 新手 我尝试运行这段代码 但我不明白问题是什么以及如何解决这个问题 我的代码是 from selenium import webdriver from time import sleep url raw
  • 使用数据库数据模型生成 SQLAlchemy 模型、架构和 JSON 响应

    将 Flask 和 SQLAlchemy 用于 Python Web 应用程序 我的目标是创建一个系统 在其中我可以 从现有 PostgreSQL 数据库导入数据模型 并将它们映射到相应 SQLAlchemy 模型中的字段 使用这些 SQL
  • 将 unique_ptr 与 boost python 结合使用 - boost::shared_ptr 有效,但 unique_ptr 无效

    这可能与以下问题相同 Boost Python 没有 to python for std unique ptr https stackoverflow com questions 20590205 boost python no to py
  • 读取 JSON 文件并将其漂亮打印到另一个文件

    我有一个复杂 嵌套 的 json 文本文件 它是文本文件中的一长行 有什么方法可以读取文件 在 python 中 并将 json 缩进 漂亮地打印到新的文本文件中吗 使用读取文件json load 并使用json dump 在指定缩进值时将
  • 冻结(.exe)一个traitsUI程序,现实可行吗?

    我正在尝试使用 cx freeze 或 pyInstaller 冻结一个 TraitsUI 程序 该程序利用 Chaco Traits TraitsUI 以及较小程度的 mayavi 实际上可以取出 我需要它在 mac linux ubun
  • 无法写入文本文件

    我正在运行一些测试并需要写入文件 当我运行测试时open file r 不写入文件 测试脚本如下 class GetDetailsIP TestGet def runTest self self category PTZ try This
  • 使用多索引列对多列求和

    我有一个从数据透视表创建的数据框 看起来类似于 import pandas as pd d company1 False Negative April 2012 112 0 April 2013 370 0 April 2014 499 0
  • 将 csv 写入谷歌云存储

    我试图了解如何将多行 csv 文件写入谷歌云存储 我只是没有遵循文档 https googlecloudplatform github io google cloud python stable storage blobs html hig
  • python 中打印变量和字符串

    好吧 我知道如何打印变量和字符串 但是我如何打印类似 我的字符串 card price 的内容 它是我的变量 我的意思是 这是我的代码 print I have and here I would like to print my varia
  • 返回 OSError 异常类的子类实例的逻辑在哪里?

    我一直在寻找一些对某些人来说可能相对愚蠢的东西 但对我来说非常有趣 输入和输出错误已合并为OSError在 Python 3 3 中 异常类层次结构发生了变化 关于内置类的一个有趣的特性OSError是这样 它在传递时返回它的子类errno
  • 在 python 中将数组作为参数传递

    我是Python新手 现在我需要声明大小为 20 的数组并将该数组传递给函数 需要数组的函数如下 function args The args是一个输入function 谁能帮我 如何在 python 中传递数组 当你说 数组 时 我假设你
  • 从 C++ 检索 Python 类型

    这个问题实际上是以下两个问题的延伸 如何在 Python 中实现 C 类 以供 C 调用 https stackoverflow com questions 9040669 how can i implement a c class in
  • Python二进制数据读取

    urllib2 请求接收二进制响应 如下所示 00 00 00 01 00 04 41 4D 54 44 00 00 00 00 02 41 97 33 33 41 99 5C 29 41 90 3D 71 41 91 D7 0A 47 0
  • 检测 Windows 重新启动是否是由于 Windows 更新造成的

    我的电脑上的一些应用程序一直在检测 Windows 更新是否重新启动 这是可以观察到的 因为它们会在 Windows 更新自动重启后重新启动 这非常有帮助 因为这些应用程序会重新加载更改 甚至unsaved更改或恢复选项卡 如果是浏览器 执
  • Python 装饰器只是语法糖? [复制]

    这个问题在这里已经有答案了 可能的重复 了解 Python 装饰器 https stackoverflow com questions 739654 understanding python decorators 我对使用 Python 装
  • Django migrate:不创建表

    经过一些错误后 我删除了数据库 删除了所有迁移文件 我留下了init py 现在 当我跑步时 python migrate py makemigrations It creates migrations correctly python m

随机推荐

  • 使用 doctest 并登录 python 程序

    usr bin python2 4 import logging import sys import doctest def foo x gt gt gt foo 0 0 print d x logger debug d x def tes
  • JavaScript 中的文本压缩

    有没有图书馆 等等 在 JavaScript 中实现轻量级文本压缩 我真正的目标是稍微缩短一些文本并使其一目了然 它不需要提供安全性 文本将为用户显示 理想情况下 可以调整压缩以仅输出查询字符 a zA Z0 9 所以它可以在 URL 中传
  • 仅针对使用通道而定制的 Phoenix 应用程序如何在多台机器上扩展?使用HAProxy?如何向所有节点广播消息?

    我将节点应用程序纯粹用于带有 Redis PubSub 的 socket io 通道 目前我将其分布在 3 台机器上 并由其中一台机器上的 nginx 负载平衡提供支持 我想用 Phoenix 应用程序替换这个节点应用程序 而且我对 erl
  • 尝试测试字符串是否为整数时脚本崩溃

    我正在为 twitch 机器人制作一个 python 脚本 它基本上充当老虎机 免责声明 我对Python完全陌生 所以请不要杀我 在脚本的开头 我使用此代码来检查是否键入了正确的命令 检查第一个参数是否为整数 并检查用户是否有足够的积分
  • 依赖注入与托管依赖关系与全局对象

    我正在 Javascript BackboneJS 一个 MVC 框架 RequireJS 框架中工作 但这个问题有点 OO 通用 首先让我解释一下 在 Backbone 中 您的视图是传统视图和控制器的混合 而您的 HTML 模板是传统的
  • Python 面向对象编程:组合

    我一直在学习如何在 python 编程中实现组合 但我很难理解为什么它比继承更受欢迎 例如 到目前为止 这是我的代码 class Particle Constructor public def init self name charge r
  • 如何从 Java 8 中的迭代器获取第 n 个值?

    我整理了一个HashMap using 按值对 Map 进行排序 Java https stackoverflow com questions 109383 sort a mapkey value by values java对此我有一个L
  • Yii2 - 使用联结表插入关系数据,多对多连接

    我在使用 Yii2 稳定版 时遇到问题 我有一个 Content PK id 表 一个 Tag PK id 表和一个名为 Content Tag PK content id tag id 的联结表 我想用它来标记 例如 WP 标记 所有控制
  • 从 Guzzle 捕获 cURL 错误

    我有以下代码发出 Guzzle 4 1 请求 client new GuzzleHttp Client defaults headers User Agent gt userAgentString retry 0 do try return
  • 另一个日期时间问题

    我目前有一个这种格式的日期 2010 03 03 10 39 18 这是一个TIMESTAMPMySQL 中的字段 我需要为名为 Solr 的搜索引擎提供以下格式的日期 1995 12 31T23 59 59Z 以下是他们网站上有关日期的一
  • 服务资产发展非常缓慢

    我有一个带有默认资产管道的标准 Rails 3 Web 应用程序 突然之间 资源需要很长时间才能加载 我的页面加载时间从约 1 2 秒到约 1 分钟 服务器响应时间 home 正常 但某些 css 和 js 文件等待时间很长 长达 45 秒
  • Python Socket - 同时发送/接收消息

    基本上我一直在使用套接字和线程开发一个简单的聊天室 在我的客户端中 我可以接收和发送消息 我的问题是循环中一个消息先于另一个消息 所以如果我发送消息 我只会在发送消息后收到数据 我希望它像任何其他聊天室一样工作 当我发送消息时我可以收到消息
  • YouTubePlayerSupportFragment 不播放视频

    我有一个包含两个片段的 Activity 就像 YouTube 应用程序一样 YouTubePlayerSupportFragment 播放视频的半宽度 ListFragment 包含视频标题列表的列表 如 youtube 活动一启动 我就
  • 使用谷歌位置API在android中的onMapReady中获取当前位置

    我试图在我的应用程序内的谷歌地图上显示用户的当前位置 但我不想在用户移动时不断更新位置 应记录并显示他的初始位置 直到他关闭应用程序 我为此编写了以下代码 private GoogleMap mMap protected GoogleApi
  • WebApi 强制操作返回 xml

    我有这个动作 public IHttpActionResult SearchFor int aboItemType DTO FilterColumns filter Do stuff return Ok
  • 单页中可以有多个 html、head 和 body 元素吗

    我有多个页面被合并到一个页面中 其中一些单独的页面有自己的 html head 和 body 元素 拥有这些会对页面的性能产生不利影响吗 FireBug 中的 DOM 似乎是正确的 每个元素只有一个 第一 不要这样做 浏览器是very如果涉
  • 闪亮的 R 操作按钮控制反应元素

    不确定我是否应该使用这个术语 基本上 我有一个反应函数 可以显示用户上传的 CSV 文件 我想使用action button触发情节生成过程 此时此刻 情节总是即时生成的 所以我想知道 在renderPlot函数 如何让action but
  • 基于类的通用 UpdateView 内联

    我有以下型号 class Cv models Model name models CharField name max length 250 objective models CharField objective max length 2
  • 删除 Windows 窗体中的标题栏

    如何删除窗口窗体顶部的蓝色边框 我不知道它的确切名称 您可以设置属性FormBorderStyle对于设计师中的任何一个人来说 或者在代码中 this FormBorderStyle System Windows Forms FormBor
  • 在 Windows 上通过 pip 使用 fastmath(gmp 或 mpir)构建 PyCrypto

    我通过 pip 在 Windows 上安装了 PyCrypto 但无法构建 Crypto PublicKey fastmath 因为找不到 GMP 我知道有一个二进制版本虚空 http www voidspace org uk python