7

仮想環境ラッパー内で 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を使用していることを明記する必要があります。

編集 次のリンクは、可能性のあるエラー ソースを見つけるのに役立ちました: Bug python 18784。しかし、パッチで指定されたコードを見たところ、python はその点にさえ達していないようです。

解決策 評判が低すぎて「解決策に入る」ことができないので、ここに編集として投稿します。次のパッチで解決策を見つけました: http://bugs.python.org/file20685/issue11063.patch

4

3 に答える 3

6

64ビットCygwinでも同じ症状がありました。「libuuid-devel」および「binutils」Cygwin パッケージをインストールすると、インポートのクラッシュが解決されました。

https://github.com/kennethreitz/requests/issues/1547で解決策についてさらに議論があります。

于 2013-10-08T05:27:04.860 に答える
1

libuuid-devel をインストールする

解決策はこちらhttps://github.com/kennethreitz/requests/issues/1547#issuecomment-29301616

apt-cyg install libuuid-devel

この後、インストールは機能します

easy_install requests

printf "help('modules')" | python | grep requests
array               hotshot             requests            xmlrpclib
于 2014-05-21T23:21:29.460 に答える
0

Yaakov が指摘しているように、発生しているバグはCPython Issue 18784として報告されており、2013 年 9 月 13 日に Python 2.7、3.3、および開発ブランチ (3.4) のメンテナンス ブランチで修正されました。

既存の Python システムをホットフィックスする必要がある場合は、Evgeny Sologubov からの次の簡単なパッチを使用して実行できます。これは、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 パッケージをインストールする際に見られる多くの主要な問題が修正されるはずです。

于 2013-10-02T14:40:46.543 に答える