पाइप स्थापित करने में समस्याएँ खस्ता हैं - RuntimeError: टूटा टूलचैन: एक साधारण C प्रोग्राम को लिंक नहीं कर सकता है


98

मैं numpy (और scipy और matplotlib) को एक सदाशिव में स्थापित करने की कोशिश कर रहा हूं।

हालांकि मुझे ये त्रुटियां मिलती रहती हैं:

RuntimeError: Broken toolchain: cannot link a simple C program

----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1

मेरे पास xcode के लिए कमांड लाइन टूल स्थापित है

$ which gcc
/usr/bin/gcc
$ which cc
/usr/bin/cc

मैं मैक OSX 10.9 पर एक काढ़ा स्थापित अजगर का उपयोग कर रहा हूँ

संपादित करें
हां, पाइप के साथ स्थापित करने की कोशिश कर रहा है।
संपूर्ण ट्रेसबैक बहुत बड़ा है (> 400 लाइनें)

यहाँ इसका एक भाग है:

C compiler: cc -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -arch i386 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -mno-fused-madd -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch x86_64 -arch i386 -pipe



compile options: '-Inumpy/core/src/private -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -Inumpy/core/include -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c'

cc: _configtest.c

clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]

clang: note: this will be a hard error (cannot be downgraded to a warning) in the future

clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]

clang: note: this will be a hard error (cannot be downgraded to a warning) in the future

failure.

removing: _configtest.c _configtest.o

Traceback (most recent call last):

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

  File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/setup.py", line 192, in <module>

    setup_package()

  File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/setup.py", line 185, in setup_package

    configuration=configuration )

  File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/numpy/distutils/core.py", line 169, in setup

    return old_setup(**new_attr)

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

    dist.run_commands()

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands

    self.run_command(cmd)

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command

    cmd_obj.run()

  File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/numpy/distutils/command/egg_info.py", line 10, in run

    self.run_command("build_src")

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/cmd.py", line 326, in run_command

    self.distribution.run_command(command)

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command

    cmd_obj.run()

  File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/numpy/distutils/command/build_src.py", line 153, in run

    self.build_sources()

  File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/numpy/distutils/command/build_src.py", line 164, in build_sources

    self.build_library_sources(*libname_info)

  File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/numpy/distutils/command/build_src.py", line 299, in build_library_sources

    sources = self.generate_sources(sources, (lib_name, build_info))

  File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/numpy/distutils/command/build_src.py", line 386, in generate_sources

    source = func(extension, build_dir)

  File "numpy/core/setup.py", line 674, in get_mathlib_info

    raise RuntimeError("Broken toolchain: cannot link a simple C program")

RuntimeError: Broken toolchain: cannot link a simple C program

1
कृपया रेखा के ऊपर कई रेखाएँ दिखाएं RuntimeError, ताकि हम देख सकें कि कौन सी कमांड विफल हो रही हैं। इसके अलावा, क्या आप pipसीधे स्रोत का निर्माण करके या उसके माध्यम से स्थापित कर रहे हैं?
मट्टडामो

रॉजर कि, अब संपादित
बेन

Lol @ "एक साधारण सी प्रोग्राम को लिंक नहीं कर सकता है"। ऐसे सस!
कैमरून हडसन

जवाबों:


77

जबकि यह बदसूरत है, यह काम करने के लिए प्रकट होता है

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install --upgrade numpy

ध्यान दें कि यदि आपको यह त्रुटि खतना के अलावा किसी अन्य पैकेज के लिए मिल रही है, (जैसे कि lxml) तो उस पैकेज का नाम numpyकॉंड के अंत में निर्दिष्ट करें।

मैंने देखा कि इसी तरह का मुद्दा किसी को मणि स्थापित करने में था

रूबी जेम स्थापित जसन Mavericks और Xcode 5.1 पर विफल रहता है - अज्ञात तर्क: '-Multiply_definedppping'

यह केवल एक अस्थायी सुधार है, कुछ बिंदु पर संकलक विकल्प तय करना होगा


1
@ बेन: एफडब्ल्यूआईडब्ल्यू, मेरे पास एक ही मुद्दा है (काढ़ा का उपयोग नहीं)। यह Xcode को 5.1 पर अपडेट करने के बाद दिखाई दिया। हालांकि, बदसूरत, यह जवाब (अभी के लिए) प्रतीत होता है।
ओरोम

2
XCode 5.1 रिलीज़ नोट में एक स्पष्टीकरण है ।
बैडज़िल

है unused-command-line-argument-hard-error-in-futureअभी भी Yosemite के तहत नवीनतम Xcode के साथ की जरूरत है? चीजें काम करने लगती हैं (कम से कम पैकेज के लिए मैं थक गया हूं) इसके बिना।
ओरोम

किसी के पास एक विंडोज़ समाधान है?
जेक प्लाउचे

90

डॉकर (अल्पाइन) और पायथन 3.x के लिए इसने मेरे लिए काम किया:

RUN apk update
RUN apk add make automake gcc g++ subversion python3-dev

15
Docker python3 अल्पाइन छवि का उपयोग करने वाले किसी के लिए, यह समाधान है।
xssChauhan

4
मुझे apk updateपहले जरूरत थी , नहीं तो मुझे एक ERROR: unsatisfiable constraintsसंदेश मिला ।
येर

आपको बहुत - बहुत धन्यवाद!
अपराह्न

यह docker python2 अल्पाइन छवि का समाधान भी है।
एडुआर्ड

4
मैं केवल gcc g++ make python3-devसुन्न / nmslib के लिए अल्पाइन के साथ ऐसा करने में सक्षम था । इस विशेष समस्या के कारण लापता सी ++ संकलक हो रहा है g++(यह त्रुटि से लग रहा है कि gccऔर makeपहले से ही स्थापित कर रहे हैं)। numpyनिर्माण के अन्य महत्वपूर्ण भाग python3 हेडर हैं जो साथ आते हैं python3-dev
ThisGuyCantEven

16

समस्या यह है कि आप संकलन करने में असमर्थ हैं।

पहले, सुनिश्चित करें कि आपने Xcode वाले नए नियम और शर्तें स्वीकार कर ली हैं। ऐसा करने के लिए, बस xCode खोलें और स्वीकार करें।

फिर, के साथ gcc स्थापित करने का प्रयास करें

brew install gcc

अंत में, के साथ Numpy स्थापित करने का प्रयास करें

pip install numpy

उम्मीद है की यह मदद करेगा।


यह मेरे लिए काम किया। समस्या यह थी कि मैंने xcode नहीं खोला और नियम और शर्तें स्वीकार कीं।
स्टीफंस

बिग सुर बीटा चलाने वालों के लिए : (1) टर्मिनल टाइप पर Xcode 12.2 बीटा 3 (2) के लिए कमांड लाइन टूल डाउनलोड और इंस्टॉल करें sudo xcode-select --switch /Library/Developer/CommandLineTools(3 brew install gcc)pip install numpy
फेलिप

9

यदि आप sudo का उपयोग नहीं करना चाहते हैं (तो अनुमतियाँ और उस तरह की चीज़ें जो वेनव का उपयोग करते समय संरक्षित हैं), आप ARCHFLAGS घोषणा को अपने .bash_profile में जोड़ सकते हैं, और सामान्य रूप से चला सकते हैं। यह मेरे लिए Mavericks और Xcode 5.1 के साथ vev का उपयोग करके काम करता है:

~ / .Bash_profile में:

निर्यात ARCHFLAGS = -कोई त्रुटि = अप्रयुक्त-कमांड-लाइन-तर्क-हार्ड-त्रुटि-में-भविष्य

फिर, बस कमांड चलाएँ:

पाइप स्थापित करें - अपग्रेड सुन्न


4
sudoइसके बाद के संस्करण, सिस्टम-व्यापी इंस्टॉलेशन के लिए है एक virtualenv में बिना चला सकते हैं
Eren Güven

5

मुझे बस XCode खोलना था और समझौते को स्वीकार करना था और इसे उपकरण स्थापित करने देना था। मैं तब PyCharm में वापस गया और बिना किसी समस्या के फिर से सुन्न स्थापित किया।


5

यदि आप एक लिनक्स वितरण चला रहे हैं, तो आपको एक सी संकलक की आवश्यकता हो सकती है, खासकर अगर आप टेलल लॉग लॉग जैसे देखते हैं sh: gcc: command not found। आप यहां दिए गए निर्देशों का पालन ​​कर सकते हैं , जिन्हें मैंने नीचे संक्षेप में प्रस्तुत किया है:

  • फेडोरा, रेड हैट, सेंटोस या वैज्ञानिक लिनक्स

    # yum groupinstall 'Development Tools'

  • डेबियन या उबंटू लिनक्स

    $ sudo apt-get update $ sudo apt-get install build-essential manpages-dev

तो आप फिर से कोशिश कर सकते हैं:

sudo pip install numpy

4

फ़ेडोरा उपयोगकर्ताओं के लिए जो एक समान समस्या रखते हैं, इन पैकेटों को स्थापित करने का प्रयास करें:

(अगर python3 का उपयोग नहीं कर रहे हैं, तो python-devel और pip3 के बजाय पाइप का उपयोग करें)

sudo dnf install python3-devel
sudo dnf install make automake gcc gcc-c++ gcc-gfortran
sudo dnf install redhat-rpm-config
sudo dnf install subversion

फिर कोशिश करो

sudo pip3 install numpy

2

OS X अपग्रेड XCode के बाद कुछ मामलों में, XCode को नए लाइसेंस को स्वीकार करने के लिए उपयोगकर्ता (प्रशासनिक विशेषाधिकारों के साथ) की आवश्यकता होगी। जब तक लाइसेंस स्वीकार नहीं किया जाता है, तब तक क्लैग और जीसीसी कोड को संकलित करने और लिंक करने का प्रयास करते समय एक त्रुटि जारी करेगा। या कम से कम अजगर पैकेज।

यदि आप XCode लॉन्च करते हैं और लाइसेंस स्वीकार करते हैं, तो त्रुटियां दिखाई नहीं देती हैं।

कम से कम, यह मेरे लिए मामला था।


1

इसका मतलब यह है कि यह आपके सी संकलक नहीं मिल सकता है। अन्य कंपाइलर को जोड़ने में विफल रहने पर gcc संकलक को स्थापित करने का प्रयास करें।


1

मेरे मामले में यह एक डॉक बिल्ड के दौरान हुआ। समस्या यह थी कि आधार छवि को एक विशिष्ट अजगर संस्करण के लिए तय नहीं किया गया था और नए के साथ संकलित नहीं किया जा सकता था।

FROM python:3-slim  # BAD

बाद में मैंने इसे बदलकर निम्न कार्य किया:

FROM python:3.8-slim  # GOOD

अपने संस्करणों को ठीक करने के लिए याद रखें! :-)


आज मेरे लिए एक ही चीज़ तैयार है। ऐसा लगता है कि उन्होंने 3.9.0 में सी कंपाइलर + संबंधित मेक यूटिलिटीज को हटा दिया।
PF1


0

फेडोरा 22 पर यह पाइप खुद को अपडेट करके हल किया गया था: sudo pip install --upgrade pip

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.