暗淡破碎了

时间:2018-04-03 10:29:43

标签: python python-3.x pip blowfish

本周末我们的码头图片破了,因为它不能再建造了。在查看统计数据时,我看到了这一行:

crypt_blowfish-1.2/crypt.h:17:23: fatal error: gnu-crypt.h: No such file or directory

更详细:

  Running setup.py bdist_wheel for cryptacular: started
  Running setup.py bdist_wheel for cryptacular: finished with status 'error'
  Complete output from command /usr/local/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-sayd65k0/cryptacular/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmp5734bf55pip-wheel- --python-tag cp36:
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-3.6
  creating build/lib.linux-x86_64-3.6/cryptacular
  copying cryptacular/__init__.py -> build/lib.linux-x86_64-3.6/cryptacular
  creating build/lib.linux-x86_64-3.6/cryptacular/crypt
  copying cryptacular/crypt/test_crypt.py -> build/lib.linux-x86_64-3.6/cryptacular/crypt
  copying cryptacular/crypt/__init__.py -> build/lib.linux-x86_64-3.6/cryptacular/crypt
  creating build/lib.linux-x86_64-3.6/cryptacular/bcrypt
  copying cryptacular/bcrypt/test_bcrypt.py -> build/lib.linux-x86_64-3.6/cryptacular/bcrypt
  copying cryptacular/bcrypt/__init__.py -> build/lib.linux-x86_64-3.6/cryptacular/bcrypt
  creating build/lib.linux-x86_64-3.6/cryptacular/core
  copying cryptacular/core/test_core.py -> build/lib.linux-x86_64-3.6/cryptacular/core
  copying cryptacular/core/__init__.py -> build/lib.linux-x86_64-3.6/cryptacular/core
  creating build/lib.linux-x86_64-3.6/cryptacular/pbkdf2
  copying cryptacular/pbkdf2/test_pbkdf2.py -> build/lib.linux-x86_64-3.6/cryptacular/pbkdf2
  copying cryptacular/pbkdf2/__init__.py -> build/lib.linux-x86_64-3.6/cryptacular/pbkdf2
  running egg_info
  writing cryptacular.egg-info/PKG-INFO
  writing dependency_links to cryptacular.egg-info/dependency_links.txt
  writing namespace_packages to cryptacular.egg-info/namespace_packages.txt
  writing requirements to cryptacular.egg-info/requires.txt
  writing top-level names to cryptacular.egg-info/top_level.txt
  reading manifest file 'cryptacular.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  writing manifest file 'cryptacular.egg-info/SOURCES.txt'
  copying cryptacular/bcrypt/_bcrypt.c -> build/lib.linux-x86_64-3.6/cryptacular/bcrypt
  running build_ext
  building 'cryptacular.bcrypt._bcrypt' extension
  creating build/temp.linux-x86_64-3.6
  creating build/temp.linux-x86_64-3.6/crypt_blowfish-1.2
  creating build/temp.linux-x86_64-3.6/cryptacular
  creating build/temp.linux-x86_64-3.6/cryptacular/bcrypt
  gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DNO_BF_ASM -Icrypt_blowfish-1.2/ -I/usr/local/include/python3.6m -c crypt_blowfish-1.2/crypt_blowfish.c -o build/temp.linux-x86_64-3.6/crypt_blowfish-1.2/crypt_blowfish.o
  gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DNO_BF_ASM -Icrypt_blowfish-1.2/ -I/usr/local/include/python3.6m -c crypt_blowfish-1.2/crypt_gensalt.c -o build/temp.linux-x86_64-3.6/crypt_blowfish-1.2/crypt_gensalt.o
  gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DNO_BF_ASM -Icrypt_blowfish-1.2/ -I/usr/local/include/python3.6m -c crypt_blowfish-1.2/wrapper.c -o build/temp.linux-x86_64-3.6/crypt_blowfish-1.2/wrapper.o
  gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DNO_BF_ASM -Icrypt_blowfish-1.2/ -I/usr/local/include/python3.6m -c cryptacular/bcrypt/_bcrypt.c -o build/temp.linux-x86_64-3.6/cryptacular/bcrypt/_bcrypt.o
  In file included from /usr/local/include/python3.6m/Python.h:39:0,
                   from cryptacular/bcrypt/_bcrypt.c:26:
  crypt_blowfish-1.2/crypt.h:17:23: fatal error: gnu-crypt.h: No such file or directory
   #include <gnu-crypt.h>
                         ^
  compilation terminated.
  error: command 'gcc' failed with exit status 1

  ----------------------------------------
  Failed building wheel for cryptacular
  Running setup.py clean for cryptacular

我们的实施适用于使用cryptacular的包bcrypt。上周没有任何软件包更新,我也不知道从哪里开始。

作为附加信息,我们Dockerfile

的此块中出现错误
RUN apt-get install -y build-essential libfontconfig && \
    pip install -q -U pip && \
    pip install -q -r requirements.txt && \
    apt-get remove -y --purge build-essential && \
    apt-get autoremove -y && \
    apt-get clean -y

requirements.txt使用cryptacular==1.4.1

的地方

THX

修改:我们正在使用python:3.6-slim图片

5 个答案:

答案 0 :(得分:3)

我在运行python 3.6.6时遇到了同样的问题。有了这个衬垫,我就可以从最新提交中安装密码。

pipenv install -e hg+https://bitbucket.org/dholth/cryptacular@cb96fb3#egg=cryptacular

您将需要安装Mercurial

apt-get update && apt-get install -y mercurial

有关this thread的更多信息

答案 1 :(得分:2)

我们并不完全知道错误,但上周末基本映像中出现了安全更新。因此我们将我们的python图像固定为3​​.6.4。

答案 2 :(得分:0)

我可以使用带有python 2.7.14的virtualenv进行安装,通过venv

安装
(test) rodrigo@trujillo:/tmp/test $ python --version
Python 2.7.14

(test) rodrigo@trujillo:/tmp/test $ pip --version
pip 10.0.1 from /tmp/test/lib/python2.7/site-packages/pip (python 2.7)

(test) rodrigo@trujillo:/tmp/test $ pip install cryptacular
Collecting cryptacular
  Using cached https://files.pythonhosted.org/packages/73/bd/714b3fbfb3392d6b4e658638d9b74f77ce1072725209c08a6becd90836a7/cryptacular-1.4.1.tar.gz
Collecting pbkdf2 (from cryptacular)
Requirement already satisfied: setuptools in ./lib/python2.7/site-packages (from cryptacular) (39.2.0)
Building wheels for collected packages: cryptacular
  Running setup.py bdist_wheel for cryptacular ... done
  Stored in directory: /home/rodrigo/.cache/pip/wheels/05/cd/1f/64fb0fb06f2735e2ca898935061275465573db7f4f98fa1db4
Successfully built cryptacular
Installing collected packages: pbkdf2, cryptacular
Successfully installed cryptacular-1.4.1 pbkdf2-1.3

(test) rodrigo@trujillo:/tmp/test $ pip list
Package       Version
------------- -------
cryptacular   1.4.1  
pbkdf2        1.3    
pip           10.0.1 
pkg-resources 0.0.0  
setuptools    39.2.0 
wheel         0.31.1 

答案 3 :(得分:0)

我的问题是通过在安装顶点之前安装cryptacular解决的

参考:https://github.com/NVIDIA/apex/issues/170#issuecomment-477321199

答案 4 :(得分:0)

在Gentoo上:

pip3 install -e hg+https://bitbucket.org/dholth/cryptacular@cb96fb3#egg=cryptacular --user

--user标志是必需的,我没有pipenv

版本: pip 20.0.2 from /usr/lib/python3.7/site-packages/pip (python 3.7)