python OS X पर पिप के साथ bcrypt स्थापित करने में त्रुटि: ffi.h नहीं मिल सकता(libffi स्थापित है)




macos pip (4)

अंत में मुझे इन पदों की थोड़ी मदद से निम्नलिखित के साथ काम करना पड़ा:

brew install pkg-config libffi
sudo bash
export CFLAGS=-Qunused-arguments
export CPPFLAGS=-Qunused-arguments
export PKG_CONFIG_PATH=/usr/local/Cellar/libffi/3.0.13/lib/pkgconfig/
pip install bcrypt

पीपी के साथ bcrypt स्थापित करने का प्रयास करते समय मुझे यह त्रुटि मिल रही है मेरे पास दो जगहों में लिबफी इंस्टॉल किया गया है (एक्सकोड ओएस एक्स एसडीके, और होमब्रे से), लेकिन मुझे नहीं पता कि कैसे इसे देखने के लिए पीपी को बताने के लिए। कोई सुझाव?

Downloading/unpacking bcrypt==1.0.2 (from -r requirements.txt (line 41))
  Running setup.py egg_info for package bcrypt
    OS/X: confusion between 'cc' versus 'gcc' (see issue 123)
    will not use '__thread' in the C code
    c/_cffi_backend.c:14:10: fatal error: 'ffi.h' file not found
    #include <ffi.h>
             ^
    1 error generated.
    Traceback (most recent call last):
      File "<string>", line 16, in <module>
      File "/Users/cody/virtualenvs/analytics/build/bcrypt/setup.py", line 104, in <module>
        "Programming Language :: Python :: 3.3",
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 112, in setup
        _setup_distribution = dist = klass(attrs)
      File "build/bdist.macosx-10.9-intel/egg/setuptools/dist.py", line 239, in __init__
      File "build/bdist.macosx-10.9-intel/egg/setuptools/dist.py", line 264, in fetch_build_eggs
      File "build/bdist.macosx-10.9-intel/egg/pkg_resources.py", line 620, in resolve
        dist = best[req.key] = env.best_match(req, ws, installer)
      File "build/bdist.macosx-10.9-intel/egg/pkg_resources.py", line 858, in best_match
        return self.obtain(req, installer) # try and download/install
      File "build/bdist.macosx-10.9-intel/egg/pkg_resources.py", line 870, in obtain
        return installer(requirement)
      File "build/bdist.macosx-10.9-intel/egg/setuptools/dist.py", line 314, in fetch_build_egg
      File "build/bdist.macosx-10.9-intel/egg/setuptools/command/easy_install.py", line 593, in easy_install

      File "build/bdist.macosx-10.9-intel/egg/setuptools/command/easy_install.py", line 623, in install_item

      File "build/bdist.macosx-10.9-intel/egg/setuptools/command/easy_install.py", line 811, in install_eggs

      File "build/bdist.macosx-10.9-intel/egg/setuptools/command/easy_install.py", line 1017, in build_and_install

      File "build/bdist.macosx-10.9-intel/egg/setuptools/command/easy_install.py", line 1005, in run_setup

    distutils.errors.DistutilsError: Setup script exited with error: command 'cc' failed with exit status 1
    Complete output from command python setup.py egg_info:
    OS/X: confusion between 'cc' versus 'gcc' (see issue 123)

will not use '__thread' in the C code

c/_cffi_backend.c:14:10: fatal error: 'ffi.h' file not found

#include <ffi.h>

         ^

1 error generated.

Traceback (most recent call last):

  File "<string>", line 16, in <module>

  File "/Users/cody/virtualenvs/analytics/build/bcrypt/setup.py", line 104, in <module>

    "Programming Language :: Python :: 3.3",

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 112, in setup

    _setup_distribution = dist = klass(attrs)

  File "build/bdist.macosx-10.9-intel/egg/setuptools/dist.py", line 239, in __init__

  File "build/bdist.macosx-10.9-intel/egg/setuptools/dist.py", line 264, in fetch_build_eggs

  File "build/bdist.macosx-10.9-intel/egg/pkg_resources.py", line 620, in resolve

    dist = best[req.key] = env.best_match(req, ws, installer)

  File "build/bdist.macosx-10.9-intel/egg/pkg_resources.py", line 858, in best_match

    return self.obtain(req, installer) # try and download/install

  File "build/bdist.macosx-10.9-intel/egg/pkg_resources.py", line 870, in obtain

    return installer(requirement)

  File "build/bdist.macosx-10.9-intel/egg/setuptools/dist.py", line 314, in fetch_build_egg

  File "build/bdist.macosx-10.9-intel/egg/setuptools/command/easy_install.py", line 593, in easy_install



  File "build/bdist.macosx-10.9-intel/egg/setuptools/command/easy_install.py", line 623, in install_item



  File "build/bdist.macosx-10.9-intel/egg/setuptools/command/easy_install.py", line 811, in install_eggs



  File "build/bdist.macosx-10.9-intel/egg/setuptools/command/easy_install.py", line 1017, in build_and_install



  File "build/bdist.macosx-10.9-intel/egg/setuptools/command/easy_install.py", line 1005, in run_setup



distutils.errors.DistutilsError: Setup script exited with error: command 'cc' failed with exit status 1

----------------------------------------
Command python setup.py egg_info failed with error code 1 in /Users/cody/virtualenvs/analytics/build/bcrypt

सुडो और सीएफएलएजी और सीपीपीएफएएलजीएस (पीपी के लिए अनावश्यक) का उपयोग किए बिना:

$ brew install pkg-config libffi
$ export PKG_CONFIG_PATH=/usr/local/Cellar/libffi/3.0.13/lib/pkgconfig/
$ pip install bcrypt

26 / अगस्त / 15 अपडेट करें

मुझे लगता है कि टीए का जवाब बेहतर है कि सिस्टम द्वारा इसे नियंत्रित किया जाता है।

सबसे पहले, मैं ब्रू या बंदरगाहों को स्थापित करने के लिए घृणा करता हूं, लेकिन यह एक और मुद्दा है।

मैं pip install cryptography को pip install cryptography करने की कोशिश कर रहा हूं, जो सीएफआई पर निर्भर करता है, जो आयात करता है ffi.h

मुझे जिज्ञासु है कि क्यों कोई भी इस बात को संबोधित नहीं करता कि वह (और मुझे, और मैं अन्य लोगों पर विश्वास करता हूं) को ffi साथ ffi स्थापित किया गया है:

locate ffi.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/ffi/ffi.h

चूंकि त्रुटि विशेष रूप से "नहीं ढूंढ" के बारे में निम्नलिखित बिल्ड कमांड के साथ ffi.h :

c/_cffi_backend.c:14:10: fatal error: 'ffi.h' file not found
#include <ffi.h>
...
...
/usr/bin/clang ...{omitted}... I/usr/include/ffi -I/usr/include/libffi

मेरे पास ffi.h , यह सिर्फ यही है कि सिस्टम सोचता है कि यह /usr/include/... में होना चाहिए।

मेरी /usr/include निर्देशिका रिक्त होती है, और कुछ से जुड़ी नहीं है, इसलिए मैंने उस निर्देशिका में डायरेक्टरी / फ़ाइल को लिंक किया है, जहां वह नहीं पाया जा सकता है:

ln -fs {THAT_XCODE_SDK_FFI_PATH_FROM_ABOVE} /usr/include/ffi

अब मैं सीएफआई और क्रिप्टोग्राफी स्थापित और निर्माण कर सकता हूं।

बिल्ड-चेन / लिंकिंग डायनेमिक्स को समझने के बाद मैं बहुत नौसिखिया हूं, और यदि यह खराब है, तो मुझे नहीं मिलता ... तो, कृपया मुझे बताएं


Xcode पहले से ही मेरे लिए स्थापित किया गया था (जैसा कि प्रश्न में उल्लेख किया गया है कि वह ffi.h शीर्षलेख प्रदान करता है), लेकिन किसी कारण से जो / usr / शामिल नहीं किया गया है (जैसे ज़ैची यंग का उल्लेख किया गया है) मैंने यह देखने के लिए चारों ओर खोदा कि क्यों / usr / include शामिल नहीं था और पाया कि निम्नलिखित कमांड ने इसे तय किया है:

$ xcode-select --install

Yosemite और Xcode स्थापित करने के बाद / usr / अनुपस्थित शामिल हैं?







libffi