【发布时间】:2019-10-24 06:39:29
【问题描述】:
我需要从 pyzmq.whl 文件中导入 zmq,但出现 ImportError。由于限制,我不能做pip install。
我已经从 pypi.org 下载了“pyzmq-18.1.0-cp37-cp37m-manylinux1_x86_64.whl”文件(它是 Python 3.7.4 的正确版本吗?)并在我的当前目录。
import sys
sys.path.append("./pyzmq.whl")
import zmq
我收到此错误消息:
File "import_zmq.py", line 3, in <module>
import zmq
File "pyzmq.whl/zmq/__init__.py", line 47, in <module>
File "pyzmq.whl/zmq/backend/__init__.py", line 40, in <module>
File "pyzmq.whl/zmq/utils/sixcerpt.py", line 34, in reraise
File "pyzmq.whl/zmq/backend/__init__.py", line 27, in <module>
File "pyzmq.whl/zmq/backend/select.py", line 28, in select_backend
File "pyzmq.whl/zmq/backend/cython/__init__.py", line 6, in <module>
ImportError: cannot import name 'constants' from 'zmq.backend.cython' (pyzmq.whl/zmq/backend/cython/__init__.py)
This question 指出是文件夹结构问题,但是我没有解压wheel文件,所以不知道如何解决这个错误。
编辑:没关系,可能无法将 pyzmq 作为轮文件导入,因为它依赖于 CPython。见https://www.python.org/dev/peps/pep-0427/#is-it-possible-to-import-python-code-directly-from-a-wheel-file
...CPython 不支持从 zip 存档导入 C 扩展(因为任何平台上的动态加载机制都不直接支持这样做)
【问题讨论】:
-
您可以在没有约束的地方安装
.whl文件。并将这些文件复制粘贴到您的程序运行文件夹中。您现在可以像往常一样在 python 中导入。如果您没有解决方案,这只是解决方法(不推荐)。 -
是的,我忘了提,我现在一直在使用它作为解决方法。
标签: python python-import failed-installation pyzmq python-wheel