在虚拟环境中安装cffi遇到错误,但是好像可以安装。这些错误真的很严重吗?这些错误可能会导致安装加密时失败(请参阅下文)?
pip install cffi==1.11.5
下载/解压cffi==1.11.5
下载cffi-1.11.5.tar.gz (438kB):已下载438kB
运行 setup.py (path:/[venv-install-directory]/build/cffi/setup.py) Egg_info 获取包 cffi
下载/解压 pycparser (来自 cffi==1.11.5)
下载 pycparser-2.18.tar.gz (245kB):已下载 245kB
运行 setup.py (path:/[venv-install-directory]/build/pycparser/setup.py) 包 pycparser 的 Egg_info
警告:没有先前包含的文件与“yacctab.txt”匹配。' 在目录 'tests' 下找到
警告:没有先前包含的文件与“lextab.txt”匹配。' 在目录 'tests' 下找到
警告:没有先前包含的文件与“yacctab.txt”匹配。' 在目录 'examples' 下找到
警告:没有先前包含的文件与“lextab.txt”匹配。' 在目录 'examples' 下找到
安装收集的软件包:cffi、pycparser
为 cffi 运行 setup.py install
构建“_cffi_backend”扩展
gcc -pthread -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DUSE__THREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/local/lib/libffi-3.2.1/include -I/[venv -安装目录]/include -I/usr/local/include/python3.4m -c c/_cffi_backend.c -o build/temp.linux-i686-3.4/c/_cffi_backend.o
gcc -pthread -shared build/temp.linux-i686-3.4/c/_cffi_backend.o -L/usr/local/lib -lffi -o build/lib.linux-i686-3.4/_cffi_backend.cpython-34m.so
在 cffi==1.11.5 的安装记录中找不到 .egg-info 目录
为 pycparser 运行 setup.py install
警告:没有先前包含的文件与“yacctab.txt”匹配。' 在目录 'tests' 下找到
警告:没有先前包含的文件与“lextab.txt”匹配。' 在目录 'tests' 下找到
警告:没有先前包含的文件与“yacctab.txt”匹配。' 在目录 'examples' 下找到
警告:没有先前包含的文件与“lextab.txt”匹配。' 在目录 'examples' 下找到
构建词法/解析表
在 pycparser 的安装记录中找不到 .egg-info 目录(来自 cffi==1.11.5)
成功安装cffi pycparser
打扫干净...
这个问题很令人困惑,因为它在我的本地系统上工作,但是在创建虚拟环境时,在尝试安装加密过程中出现以下错误:
File "[path-to-venv]/build/cryptography/src/_cffi_src/utils.py", line 57, in build_ffi
ffi = FFI()
File "[path-to-venv]/lib/python3.4/site-packages/cffi/api.py", line 46, in __init__
import _cffi_backend as backend
ImportError: [path-to-venv]/lib/python3.4/site-packages/_cffi_backend.cpython-34m.so: undefined symbol: __syscall_error
虚拟环境实际上创建了本地环境的副本,不是吗?
那么,当系统安装本身没有问题时,“_cffi_backend”如何在虚拟环境中不起作用呢?我一开始就不明白这是怎么发生的。
有没有人成功解决过这样的问题?如果您有想法或解决方案,请具体说明,因为我已经花了相当多的时间尝试迄今为止尚未奏效的解决方案。
除此之外,在创建虚拟环境之前,我已经尝试从源代码编译和安装 libffi:https://sourceware.org/libffi/ https://sourceware.org/libffi/
是否有其他替代方法来创建不需要重新安装每个软件包的虚拟环境 - 即可以使用现有的安装设置并将其直接复制到虚拟环境中(或避免陷入依赖地狱的类似方式)?
一旦掌握了实际问题,这似乎是一个很容易解决的问题。如果我无法弄清楚这一点,我就无法部署我的项目,因为它很大程度上依赖于密码学。因此,提前感谢您提供任何有助于解决此问题的想法。
本例的答案是在虚拟环境中升级 pip。
完整说明:
-
创建虚拟环境。
python3.4 -m venv [venv_name_here]
-
进入虚拟环境。
cd [venv_name_here]
-
激活虚拟环境。
源文件箱/激活
4.升级点。
pip 安装 --升级 pip
-
安装安装工具。
pip install setuptools==39.1.0
-
安装 pyparser。
pip 安装 pyparser==1.0
pip 安装 pyparsing==2.1.0
-
安装 cffi.
pip 安装 cffi==1.11.5
-
安装加密技术。
pip install cryptography==2.2.2
完美完成安装,没有任何错误。
请注意,您可能需要更改版本号,具体取决于“pip freeze”命令的输出(即查看“requirements.txt”文件):
pip freeze -l > 要求.txt
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)