2012-07-16 11 views
15

स्थापित नहीं कर सकता है मैंने इस पर बहुत समय बिताया है और यह मेरी नौसिखिया समझ/कौशल से परे स्पष्ट रूप से है। मैंने पाइप इंस्टॉल के साथ django-heroku-memcacheify स्थापित करने का प्रयास किया, जो त्रुटियों को फेंक देता है। मैंने समस्या को pylibmc पर ट्रैक किया, जो सभी समस्याओं का कारण बन रहा है। यहाँ त्रुटि लॉग के दिलचस्प भागों में से एक है:हेरोकू डब्ल्यू/Django पर Memcached: pylibmc/memcacheify

_pylibmcmodule.h: 42: 36: त्रुटि: libmemcached/memcached.h: ऐसा कोई फ़ाइल या निर्देशिका

यहाँ (लगभग) पूरी हो चुकी है ट्रैस बैक:

-----> Heroku receiving push 
-----> Fetching custom buildpack... done 
-----> Python app detected 
-----> Preparing Python interpreter (2.7.2) 
-----> Creating Virtualenv version 1.7.2 
!  CLEAN_VIRTUALENV set, rebuilding virtualenv. 
     Running virtualenv with interpreter /usr/local/bin/python2.7 
     New python executable in .heroku/venv/bin/python2.7 
     Not overwriting existing python script .heroku/venv/bin/python (you must 
use .heroku/venv/bin/python2.7) 
     Installing   distribute..................................................................................................................................................................................................done. 
    Installing pip................done. 
-----> Activating virtualenv 
-----> Installing dependencies using pip version 1.1 
     Requirement already satisfied (use --upgrade to upgrade): Django==1.4 in 
./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 2)) 
     Requirement already satisfied (use --upgrade to upgrade): gunicorn==0.14.3 in  ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 3)) 
     Requirement already satisfied (use --upgrade to upgrade): PIL==1.1.7 in ./.heroku/venv/lib/python2.7/site-packages/PIL (from -r requirements/common.txt (line 4)) 
     Requirement already satisfied (use --upgrade to upgrade): South==0.7.5 in ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 5)) 
     Requirement already satisfied (use --upgrade to upgrade): boto==2.1.1 in 
./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 6)) 
     Downloading/unpacking distribute==0.6.10 (from -r requirements/common.txt (line 7)) 
     Using download cache from /app/tmp/repo.git/.cache/pip_downloads/http%3A%2F%2Fpypi.python.org%2Fpackages%2Fsource%2Fd%2Fdistribute%2Fdistribute-0.6.10.tar.gz 
     Running setup.py egg_info for package distribute 

     Requirement already satisfied (use --upgrade to upgrade): python-dateutil==1.5 in ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 8)) 
     Requirement already satisfied (use --upgrade to upgrade): six==1.1.0 in ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 9)) 
     Requirement already satisfied (use --upgrade to upgrade): django-appconf==0.5 in ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 10)) 
     Requirement already satisfied (use --upgrade to upgrade): dj-database-url==0.2.0 in ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 11)) 
     Downloading/unpacking django-compressor==dev (from -r requirements/common.txt (line 12)) 
     Using download cache from /app/tmp/repo.git/.cache/pip_downloads/http%3A%2F%2Fgithub.com%2Fjezdez%2Fdjango_compressor%2Ftarball%2Fdevelop 
     Cannot determine compression type for file /app/tmp/repo.git/.cache/pip_downloads/http%3A%2F%2Fgithub.com%2Fjezdez%2Fdjango_compressor%2Ftarball%2Fdevelop 
     Running setup.py egg_info for package django-compressor 

     Requested django-compressor==dev (from -r requirements/common.txt (line 12)), but installing version 1.2a2 
     Requirement already satisfied (use --upgrade to upgrade): django-crispy-forms==1.1.2 in ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 13)) 
     Requirement already satisfied (use --upgrade to upgrade): django-extensions==0.9 in ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 14)) 
     Requirement already satisfied (use --upgrade to upgrade): django-facebook==4.0.9 in ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 15)) 
     Requirement already satisfied (use --upgrade to upgrade): django-floppyforms==1.0 in ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 16)) 
     Requirement already satisfied (use --upgrade to upgrade): django-guardian==1.0.4 in ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 17)) 
     Requirement already satisfied (use --upgrade to upgrade): django-image-cropping==0.5 in ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 18)) 
     Requirement already satisfied (use --upgrade to upgrade): django-ratings==0.3.6 in ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 19)) 
     Requirement already satisfied (use --upgrade to upgrade): django-smuggler==0.3 in ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 20)) 
     Requirement already satisfied (use --upgrade to upgrade): django-storages==1.1.4 in ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 21)) 
     Requirement already satisfied (use --upgrade to upgrade): django-subdomains==1.2.1 in ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 22)) 
     Requirement already satisfied (use --upgrade to upgrade): django-s3-folder-storage==0.1 in ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 23)) 
     Requirement already satisfied (use --upgrade to upgrade): django-userena==1.1.0 in ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 24)) 
     Requirement already satisfied (use --upgrade to upgrade): Whoosh==2.4.0 in ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 25)) 
     Requirement already satisfied (use --upgrade to upgrade): brabeion==0.1 in ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 26)) 
     Requirement already satisfied (use --upgrade to upgrade): versiontools==1.9.1 in ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 27)) 
     Obtaining django-haystack from git+https://github.com/toastdriven/[email protected]#egg=django_haystack-dev (from -r requirements/common.txt (line 28)) 
     Updating ./.heroku/src/django-haystack clone (to 25bd361d3c64cc22a1090a5053465939647d973d) 
     Could not find a tag or branch '25bd361d3c64cc22a1090a5053465939647d973d', assuming commit. 
     Running setup.py egg_info for package django-haystack 

     Obtaining django-taggit from git+git://github.com/shacker/[email protected]#egg=django_taggit-dev (from -r requirements/common.txt (line 29)) 
     Updating ./.heroku/src/django-taggit clone (to 7987beaf357f8d3621c7fbce3b6753dd21962ee7) 
     Could not find a tag or branch '7987beaf357f8d3621c7fbce3b6753dd21962ee7', assuming commit. 
     Running setup.py egg_info for package django-taggit 

     Obtaining django-generic-aggregation from git+git://github.com/coleifer/[email protected]9cbe05e#egg=django_generic_aggregation-dev (from -r requirements/common.txt (line 30)) 
     Updating ./.heroku/src/django-generic-aggregation clone (to c76408c2c002dcab6bfc3148760ee58a19cbe05e) 
     Could not find a tag or branch 'c76408c2c002dcab6bfc3148760ee58a19cbe05e', assuming commit. 
     Running setup.py egg_info for package django-generic-aggregation 

     Requirement already satisfied (use --upgrade to upgrade): easy-thumbnails==1.0.3 in ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 31)) 
     Requirement already satisfied (use --upgrade to upgrade): docutils==0.9 in ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 32)) 
     Requirement already satisfied (use --upgrade to upgrade): httplib2==0.7.4 in ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt 
(line 33)) 
     Requirement already satisfied (use --upgrade to upgrade): reportlab==2.5 
in ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/common.txt (line 34)) 
     Requirement already satisfied (use --upgrade to upgrade): wsgiref==0.1.2 
in /usr/local/lib/python2.7 (from -r requirements/common.txt (line 35)) 
     Downloading/unpacking django-pylibmc-sasl==0.2.4 (from -r requirements/prod.txt (line 3)) 
     Downloading django-pylibmc-sasl-0.2.4.tar.gz 
     Storing download in cache at /app/tmp/repo.git/.cache/pip_downloads/http%3A%2F%2Fpypi.python.org%2Fpackages%2Fsource%2Fd%2Fdjango-pylibmc-sasl%2Fdjango-pylibmc-sasl-0.2.4.tar.gz 
     Running setup.py egg_info for package django-pylibmc-sasl 

     Requirement already satisfied (use --upgrade to upgrade): psycopg2==2.4.5 in  ./.heroku/venv/lib/python2.7/site-packages (from -r requirements/prod.txt (line 4)) 
     Downloading/unpacking pylibmc==1.2.3 (from -r requirements/prod.txt (line 5)) 
     Storing download in cache at /app/tmp/repo.git/.cache/pip_downloads/http%3A%2F%2Fpypi.python.org%2Fpackages%2Fsource%2Fp%2Fpylibmc%2Fpylibmc-1.2.3.tar.gz 
     Running setup.py egg_info for package pylibmc 

     Downloading/unpacking django-heroku-memcacheify==0.3 (from -r requirements/prod.txt (line 6)) 
     Downloading django-heroku-memcacheify-0.3.tar.gz 
     Storing download in cache at /app/tmp/repo.git/.cache/pip_downloads/http%3A%2F%2Fpypi.python.org%2Fpackages%2Fsource%2Fd%2Fdjango-heroku-memcacheify%2Fdjango-heroku-memcacheify-0.3.tar.gz 
     Running setup.py egg_info for package django-heroku-memcacheify 

    Installing collected packages: distribute, django-compressor, django-haystack, django-taggit, django-generic-aggregation, django-pylibmc-sasl, pylibmc, django-heroku-memcacheify 
    Found existing installation: distribute 0.6.27 
     Uninstalling distribute: 
     Successfully uninstalled distribute 
    Running setup.py install for distribute 
     Before install bootstrap. 
     Scanning installed packages 
     Setuptools installation detected at /tmp/build_vk3edwx3xe4q/.heroku/venv/lib/python2.7/site-packages 
     Non-egg installation 
     Removing elements out of the way... 
     Already patched. 
     /tmp/build_vk3edwx3xe4q/.heroku/venv/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg-info already patched. 

     Installing easy_install script to /tmp/build_vk3edwx3xe4q/.heroku/venv/bin 
     Installing easy_install-2.7 script to /tmp/build_vk3edwx3xe4q/.heroku/venv/bin 
     After install bootstrap. 
     /tmp/build_vk3edwx3xe4q/.heroku/venv/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg-info already exists 
    Found existing installation: django-compressor 1.2a2 
     Uninstalling django-compressor: 
     Successfully uninstalled django-compressor 
    Running setup.py install for django-compressor 

    Running setup.py develop for django-haystack 

     Creating /tmp/build_vk3edwx3xe4q/.heroku/venv/lib/python2.7/site-packages/django-haystack.egg-link (link to .) 
     django-haystack 2.0.0-beta is already the active version in easy-install.pth 

     Installed /tmp/build_vk3edwx3xe4q/.heroku/src/django-haystack 
    Running setup.py develop for django-taggit 

     Creating /tmp/build_vk3edwx3xe4q/.heroku/venv/lib/python2.7/site-packages/django-taggit.egg-link (link to .) 
     django-taggit 0.9.4 is already the active version in easy-install.pth 

     Installed /tmp/build_vk3edwx3xe4q/.heroku/src/django-taggit 
    Running setup.py develop for django-generic-aggregation 

     Creating /tmp/build_vk3edwx3xe4q/.heroku/venv/lib/python2.7/site-packages/django-generic-aggregation.egg-link (link to .) 
     django-generic-aggregation 0.3.1 is already the active version in easy-install.pth 

     Installed /tmp/build_vk3edwx3xe4q/.heroku/src/django-generic-aggregation 
    Running setup.py install for django-pylibmc-sasl 

    Running setup.py install for pylibmc 
     building '_pylibmc' extension 
     gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DUSE_ZLIB -I/usr/local/include/python2.7 -c _pylibmcmodule.c -o build/temp.linux-x86_64-2.7/_pylibmcmodule.o -fno-strict-aliasing 
     In file included from _pylibmcmodule.c:34: 
     _pylibmcmodule.h:42:36: error: libmemcached/memcached.h: No such file or directory 
      _pylibmcmodule.c: In function â?~init_pylibmcâ?T: 
      _pylibmcmodule.c:2140: error: â?~LIBMEMCACHED_VERSION_STRINGâ?T undeclared (first use in this function) 
      _pylibmcmodule.c:2140: warning: passing argument 3 of â?~PyModule_AddStringConstantâ?T from incompatible pointer type 
     /usr/local/include/python2.7/modsupport.h:42: note: expected â?~const char *â?T but argument is of type â?~struct PylibMC_Behavior *â?T 
     error: command 'gcc' failed with exit status 1 
     Complete output from command /tmp/build_vk3edwx3xe4q/.heroku/venv/bin/python2.7 -c "import setuptools;__file__='/tmp/build_vk3edwx3xe4q/.heroku/venv/build/pylibmc/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-Y7MRuY-record/install-record.txt --install-headers /tmp/build_vk3edwx3xe4q/.heroku/venv/include/site/python2.7: 
     running install 

    running build 

    running build_py 

    creating build 

    creating build/lib.linux-x86_64-2.7 

    creating build/lib.linux-x86_64-2.7/pylibmc 

    copying pylibmc/__main__.py -> build/lib.linux-x86_64-2.7/pylibmc 

    copying pylibmc/pools.py -> build/lib.linux-x86_64-2.7/pylibmc 

    copying pylibmc/__init__.py -> build/lib.linux-x86_64-2.7/pylibmc 

    copying pylibmc/client.py -> build/lib.linux-x86_64-2.7/pylibmc 

    copying pylibmc/consts.py -> build/lib.linux-x86_64-2.7/pylibmc 

    copying pylibmc/test.py -> build/lib.linux-x86_64-2.7/pylibmc 

    running build_ext 

    building '_pylibmc' extension 

    creating build/temp.linux-x86_64-2.7 

    gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DUSE_ZLIB -I/usr/local/include/python2.7 -c _pylibmcmodule.c -o build/temp.linux-x86_64-2.7/_pylibmcmodule.o -fno-strict-aliasing 

    In file included from _pylibmcmodule.c:34: 

    _pylibmcmodule.h:42:36: error: libmemcached/memcached.h: No such file or 
directory 

    In file included from _pylibmcmodule.c:34: 

    _pylibmcmodule.h:75: error: expected declaration specifiers or â?~...â?T before â?~*â?T token 

...Lots of errors... 

    _pylibmcmodule.c: In function â?~init_pylibmcâ?T: 

    _pylibmcmodule.c:2140: error: â?~LIBMEMCACHED_VERSION_STRINGâ?T undeclared (first use in this function) 

    _pylibmcmodule.c:2140: warning: passing argument 3 of â?~PyModule_AddStringConstantâ?T from incompatible pointer type 

    /usr/local/include/python2.7/modsupport.h:42: note: expected â?~const char *â?T but argument is of type â?~struct PylibMC_Behavior *â?T 

    error: command 'gcc' failed with exit status 1 

    ---------------------------------------- 
    Command /tmp/build_vk3edwx3xe4q/.heroku/venv/bin/python2.7 -c "import setuptools;__file__='/tmp/build_vk3edwx3xe4q/.heroku/venv/build/pylibmc/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-Y7MRuY-record/install-record.txt --install-headers /tmp/build_vk3edwx3xe4q/.heroku/venv/include/site/python2.7 failed with error code 1 in /tmp/build_vk3edwx3xe4q/.heroku/venv/build/pylibmc 
    Storing complete log in /app/.pip/pip.log 
!  Heroku push rejected, failed to compile Python app 

To [email protected]:crowdcademy.git 
! [remote rejected] master -> master (pre-receive hook declined) 
error: failed to push some refs to '[email protected]:crowdcademy.git' 

तो यहाँ सौदा है

मैं ट नहीं कर सकते यह मेरे स्थानीय env b/c में नहीं है मैं बकवास के खिड़कियों के टुकड़े पर चल रहा हूँ। लेकिन मैंने जो पढ़ा है उससे libmemcachedalready installed हैकोकू पर। और किसी और को pylibmc के साथ कोई समस्या नहीं है क्योंकि मुझे Google पर कुछ भी नहीं मिला। In this post वे के बारे में बात कर रहे हैं:

that if they detect that you are loading pylibmc, they will bootstrap libmemcached for you

कि समस्या हो सकती है, या तो यह से उपलब्ध नहीं है या पथ गलत है। किसी भी मदद की सराहना की है! अगर यह काम नहीं करता है तो मुझे रेडिस का उपयोग करना होगा जो बहुत कठिन लगता है ... पता नहीं है कि मैं इसके लिए पर्याप्त उन्नत हूं या नहीं।

संपादित अप्रासंगिक हो सकता है, लेकिन मैं एक सेटिंग के बजाय init एक settings.py फ़ाइल के साथ फ़ोल्डर का उपयोग कर रहा हूँ। मैंने सुना है कि इससे कुछ अजीब व्यवहार हो सकता है क्योंकि उसकेोकू हमेशा याद नहीं करते कि यह संभव है।

संपादित 2

चूंकि memcached चलाने सैकड़ों लोगों के होते हैं और बिना किसी समस्या के Heroku पर django, मुझे नहीं लगता कि Heroku उपयोगकर्ताओं हैक किसी प्रकार के साथ libmemcached स्थापित करने वाले हैं है। डॉक्स इसके बारे में बात करते हैं जैसे कि यह आपके लिए बूटस्ट्रैप किया गया है जब उसकेोकू आपकी आवश्यकताओं फ़ाइल में pylibmc का पता लगाता है। जो मुझे इस निष्कर्ष की ओर जाता है: ए) या तो वहाँ कुछ अपनी सेटिंग्स में गलत या मैं का उपयोग क्षुधा में से एक या बी) में Heroku हाल ही में कुछ बदल गया है और Django के लिए libmemcached का स्वत: बूटस्ट्रैपिंग तोड़ दिया है। मैंने heroku कॉन्फ़िगरेशन के साथ एक नया इंस्टॉल प्राप्त करने का प्रयास किया है: CLEAN_VIRTUALENV = true लेकिन that's not working either right now जोड़ें। मुझे उम्मीद है कि यह है और किसी को भी एक ही समस्या है। यदि यह बी मुझे नहीं पता कि इसे कैसे हल किया जाए।

+0

यह समस्या सिर्फ नीले आज से बाहर मेरे लिए हो रहा शुरू कर दिया ... और memcached मेरे लिए महीने के लिए काम कर रहा है। मुझे खुशी है कि आपने यह पूछा, क्योंकि तिवेई का जवाब स्पॉट पर था। मैंने अपनी आवश्यकताओं को कई आवश्यकताओं में पुनर्गठित किया था और रूट आवश्यकता उन्हें आयात करती है; ऐसा लगता है कि घातक रहा है। मुझे लगता है कि मैं सिर्फ रूट फ़ाइल में pylibmc डाल दूंगा और इसे साफ़ करना चाहिए। –

उत्तर

31

मैंने हेरोकू में दोस्ताना लोगों से बात की है और ऐसा लगता है कि मेरी आवश्यकताओं.txt सेटअप सभी विनाश का कारण बन रहा था। रूट में एक आवश्यकता फ़ाइल का उपयोग न करें जो किसी अन्य आवश्यकता फ़ाइल से आयात करता है! कम से कम pylibmc के लिए जो काम नहीं कर रहा है क्योंकि रूट आवश्यकताएँ फ़ाइल में pylibmc के साथ कोई स्पष्ट रेखा नहीं है, तो libmemcached बूटस्ट्रैप नहीं होता है। मुझे आशा है कि इससे दूसरों को इस समस्या पर खर्च किए गए 10 बजे बर्बाद करने में मदद मिलेगी। वाह!

+2

बहुत बहुत धन्यवाद! मुझे विश्वास नहीं है कि यह इतना आसान था। यह वास्तव में दस्तावेज होने की जरूरत है। –

+1

अपने खुद के प्रश्न का उत्तर देने के लिए समय निकालने के लिए धन्यवाद! –

+3

आपको हेरोोकू के लिए अपनी आवश्यकताओं की फाइलों को फ़्लैट करने की आवश्यकता नहीं है। 'Requirement.txt' में' pylibmc' जोड़ना मेरे लिए काम करता है। –

4

क्या आपने libmemcached-dev, memcached-dev जैसे कुछ की कोशिश की है? आपको libmemcached के स्रोतों की आवश्यकता है!

+0

मुझे यकीन नहीं है कि क्या मैं उसकेोकू पर libmemcached स्थापित कर सकता हूं, मेरे पास शायद ऐसा करने के लिए रूट अधिकार नहीं हैं। इसके अलावा यदि यह मेरी आवश्यकताओं में नहीं है। Txt जब मैं अद्यतन को दबाता हूं तो यह स्वचालित रूप से इंस्टॉल नहीं होगा। लेकिन मैं कुछ भी करने की कोशिश करने के लिए तैयार हूं, मेरी धारणा गलत हो सकती है! – tiwei

+0

libmemcached-dev ने इसे मेरे लिए तय किया है (उबंटू) – Mark

10

आपको libmemcached स्थापित करने की आवश्यकता है।

आपको विकास हेडर या कुछ भी नहीं चाहिए, नियमित रूप से पर्याप्त हैं!

यदि आप libmemcached स्थापित नहीं कर सकते हैं, तो आप pylibmc इंस्टॉल नहीं कर सकते हैं। इसके बारे में खेद है लेकिन इसके बारे में बहुत कुछ नहीं है।

इस पर जाने का एक तरीका है लेकिन यह एक बकवास विचार है इसलिए यदि आप विवरण चाहते हैं तो मुझे संदेश भेजें।

+0

धन्यवाद लेरिक्सन, मैंने इसे स्थापित करने के लिए कुछ हैक्स की कोशिश की है, लेकिन जब आप पाइप के बाहर जाने का प्रयास करते हैं तो उसकेोकू इसे पसंद नहीं करते हैं। मेरा मानना ​​है कि उसकाोकू आपके लिए libmemcached स्थापित कर रहा है, कम से कम यही होने वाला है। यह सब कुछ अस्पष्ट है और दस्तावेज शायद ही इसके बारे में बात करता है। – tiwei

+1

sudo apt-get install -y libmemcached-dev zlib1g-dev libssl-dev python-dev build-required पाइप स्थापित pylibmc –

2

इस प्रयास करें:

sudo apt-get install libmemcached-dev 
+0

धन्यवाद यह काम किया – soField