UUID python导入在Cygwin 64位上失败

UUID python导入在Cygwin 64位上失败,python,cygwin,uuid,Python,Cygwin,Uuid,我在虚拟环境包装器中运行python,并尝试导入UUID。以下是我收到的信息: python -v >>> import uuid # /home/tanzaho/.virtualenvs/django_wordiz/lib/python2.7/site-packages/uuid.pyc matches /home/tanzaho/.virtualenvs/django_wordiz/lib/python2.7/site-packages/uuid.py import u

我在虚拟环境包装器中运行python,并尝试导入UUID。以下是我收到的信息:

python -v
>>> import uuid


# /home/tanzaho/.virtualenvs/django_wordiz/lib/python2.7/site-packages/uuid.pyc matches /home/tanzaho/.virtualenvs/django_wordiz/lib/python2.7/site-packages/uuid.py
import uuid # precompiled from /home/tanzaho/.virtualenvs/django_wordiz/lib/python2.7/site-packages/uuid.pyc
import ctypes # directory /usr/lib/python2.7/ctypes
# /usr/lib/python2.7/ctypes/__init__.pyc matches /usr/lib/python2.7/ctypes/__init__.py
import ctypes # precompiled from /usr/lib/python2.7/ctypes/__init__.pyc
dlopen("/home/tanzaho/.virtualenvs/django_wordiz/lib/python2.7/lib-dynload/_ctypes.dll", 2);
import _ctypes # dynamically loaded from /home/tanzaho/.virtualenvs/django_wordiz/lib/python2.7/lib-dynload/_ctypes.dll
# /usr/lib/python2.7/struct.pyc matches /usr/lib/python2.7/struct.py
import struct # precompiled from /usr/lib/python2.7/struct.pyc
dlopen("/home/tanzaho/.virtualenvs/django_wordiz/lib/python2.7/lib-dynload/_struct.dll", 2);
import _struct # dynamically loaded from /home/tanzaho/.virtualenvs/django_wordiz/lib/python2.7/lib-dynload/_struct.dll
# /usr/lib/python2.7/ctypes/_endian.pyc matches /usr/lib/python2.7/ctypes/_endian.py
import ctypes._endian # precompiled from /usr/lib/python2.7/ctypes/_endian.pyc
# /usr/lib/python2.7/ctypes/util.pyc matches /usr/lib/python2.7/ctypes/util.py
import ctypes.util # precompiled from /usr/lib/python2.7/ctypes/util.pyc
之后,python停止运行,没有任何其他警告。我试图从Cygwin重新安装库,但没有帮助

有没有办法解决这个问题

我应该指定在Windows7 64位下使用python 2.7

编辑 以下链接帮助我找到了可能的错误来源:。但是我查看了补丁中指定的代码,python似乎还没有达到这一点

解决方案 由于我的声誉太低,无法“进入解决方案”,因此我将其作为编辑发布在此处。 我通过以下补丁找到了解决方案:

正如Yaakov所指出的,您遇到的错误已报告为,并已于2013年9月13日在Python 2.7、3.3和开发分支(3.4)的维护分支中修复

如果需要热修复现有的Python系统,可以使用以下简单方法,在找到uuid例程后,使uuid模块无法尝试加载更多库:

diff -r 4a318a45c4c3 Lib/uuid.py
--- a/Lib/uuid.py   Mon Aug 19 13:07:18 2013 -0400
+++ b/Lib/uuid.py   Mon Aug 19 21:41:08 2013 +0400
@@ -429,6 +429,8 @@
             _uuid_generate_random = lib.uuid_generate_random
         if hasattr(lib, 'uuid_generate_time'):
             _uuid_generate_time = lib.uuid_generate_time
+            if _uuid_generate_random is not None:
+                break  # found everything we were looking for

     # The uuid_generate_* functions are broken on MacOS X 10.5, as noted
     # in issue #8621 the function generates the same sequence of values

ctypes还有一些更深层次的问题需要解决,但这应该可以解决人们在Cygwin64上安装Python包时遇到的许多主要问题。

我在64位Cygwin上也有同样的症状。安装“libuuid-devel”和“binutils”Cygwin包为我解决了导入崩溃问题

有关解决方案的更多讨论,请访问:。

安装libuuid-devel 解决办法就在这里

在此之后,安装工作

easy_install requests

printf "help('modules')" | python | grep requests
array               hotshot             requests            xmlrpclib

中的补丁确实是正确的,停止故障,现在已被上游接受。我将尽快尝试将该补丁添加到Cygwin的
python
python3
包中。顺便说一句,如果你知道我们可以联系谁来讨论这个问题。。。。我很感兴趣。@Yaakov-这确实修复了导入失败,但我不确定它是否修复了Cygwin上的底层DLL加载问题。我在尝试执行uuid.uuid4()时遇到一个segfault。你们两个都能复制吗?不是在修补
uuid.py
@Yaakov-抱歉,我是从问题中应用修补程序的。这是不正确的补丁。您链接到了这个问题:和这个补丁:,它确实解决了我的问题。
easy_install requests

printf "help('modules')" | python | grep requests
array               hotshot             requests            xmlrpclib