如何在Windows 7 64位系统上安装PyOpenSSL?

14
为了让Scrapy在HTTPS上工作,我需要PyOpenSSL,但似乎无法使其工作。

那么,是否有64位版本可用?我没有找到... 我已经安装了32位版本但是...

目前我从Scrapy得到这个错误信息:

ERROR: Error downloading <https://SOME_PRIVATE_URL_HERE>:  
  [Failure instance: Traceback: <class 'scrapy.exceptions.NotSupported'>:
  HTTPS not supported: install pyopenssl library

有人知道如何获取或编译64位版本吗?还是这不必要?

3个回答

12
实际上,这个网站的第9步将解决您的问题。

http://steamforge.net/wiki/index.php/How_to_Install_Scrapy_in_64-bit_Windows_7

编辑:包括steamforge的内容:

注意事项

  • Scrapy必须安装在Python 2.5、2.6或2.7上(不支持3.x)
  • Python 2.7(和3.2)不能加载正确的32位兼容Windows注册表键。

安装流程

1.从http://www.python.org/getit/下载并安装Python 2.7.2(使用Windows Installer)。 2.转到“开始”菜单底部的“搜索程序和文件”栏,输入“regedit”,然后按回车键。 3.使用左侧面板导航到“HKEY_LOCAL_MACHINE\SOFTWARE\Python”,并单击它(突出显示为蓝色)。 4.选择该分支后,转到“文件”-->“导出”。 5.将文件保存在您可以轻松获取的位置。 6.在您喜欢的文本编辑器中打开文件。 7.在每行“SOFTWARE”和“\Python”之间插入“\Wow6432Node”(一种简单的方法是在查找字段中使用“SOFTWARE”,在替换字段中使用“SOFTWARE\Wow6432Node”进行查找和替换)。 8.保存文件。 9.导航到您保存的文件所在的位置,并双击它以启动注册表修改。 10.现在从http://pypi.python.org/pypi/Scrapy下载Scrapy 0.14 Windows安装程序。 11.双击Scrapy安装程序,一切都应该正常工作。 12.从http://twistedmatrix.com/trac/wiki/Downloads下载并安装Python 2.7 64位的Twisted 11.1.0。 13.下载并安装Zope.Interface 14.从http://python-distribute.org/distribute_setup.py下载distribute_setup.py(右键单击并保存),然后双击它进行安装。 15.从http://pypi.python.org/pypi/zope.interface/3.8.0#downloads下载zope.interface-3.8.0-py2.6-win-amd64.egg。 16.打开命令提示符(在上面的“搜索程序和文件”窗格中键入“cmd”),然后导航到您的Python脚本文件夹(类似于“cd C:\Python27\Scripts”)。 17.输入“easy_install C:\Downloads\zope.interface-3.8.0-py2.6-win-amd64.egg”(将C:\Downloads\替换为您下载Zope.Interface的位置),然后按回车键。 18.从http://www.lfd.uci.edu/~gohlke/pythonlibs/下载并安装lxml-2.3.2.win-amd64-py2.7.‌exe。 19.从http://www.egenix.com/cryptodownload/?file=egenix-pyopenssl-0.13.0_1.0.0g_1.win-amd64-py2.7.msi下载并安装egenix-pyopenssl-0.13.0_1.0.0g_1.win-amd64-py2.7.msi。 20.当它要求您导航到Python 2.6目录时,只需将其指向Python 2.7目录(默认情况下为C:\Python27)。 21.安装w3lib 22.打开命令提示符(开始->“搜索程序和文件”->“cmd”)。 23.导航到您的Python脚本文件夹(通常为“C:\Python27\Scripts”)。 24.键入“easy_install w3lib”并按回车键。 25.现在,我们只需要将Python脚本文件夹添加到系统路径中,以便我们可以使用scrapy。 26.单击“开始菜单”按钮,右键单击“计算机”,然后选择“属性”。 27.单击左边栏中的“高级系统设置”。 28.单击“环境变量...”。 29.在(较低的)系统变量窗格中找到“Path”变量,并双击它。 30.单击“变量值:”窗格,然后点击“结束”按钮。 31.在行末输入或粘贴“;C:\Python27\Scripts\"(根据您安装Python的位置进行修改),然后点击“确定”。

11

您的问题在于未安装PyOpenSSL。从您的问题中推断,您安装了32位版本的PyOpenSSL,但使用的是64位版本的Python。这不起作用。

如果您真的无法获得64位版本的PyOpenSSL,那么最简单、可能也是唯一的解决方案就是安装32位版本的Python、Scrapy及其所有依赖项。如果您觉得勇敢,那么可以尝试编译64位版本的源代码,但我对PyOpenSSL的了解不足,无法确定是否可行。


第二句话的结尾说,完全转换为32位可能会有帮助,我现在要尝试一下。我不需要Python是64位的,或者如果将来需要,我可以安装第二个Python安装包之类的东西... :-) - Tamara Wijsman
1
@Tom 最简单的方法就是安装32位的Python等。它在64位的Windows上运行得很好。我甚至没有64位的Python,因为我有一些依赖于32位库的程序。 - David Heffernan
太棒了,这么快的解决方案,谢谢! DEBUG: Crawled (200) <POST https://SOMESITE> (referer: http://SOMESITE) - Tamara Wijsman

1

eGenix.com提供Windows 32位和64位的安装程序。我刚刚下载并安装了Python 2.6的Windows 64位安装程序,它解决了我的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接