2015-06-02 12 views
6

में अम्पी 1.8 इंस्टॉल करें मेरी परियोजना के भीतर, मुझे (1.) को Numpy 1.8 में शामिल एक सुविधा का उपयोग करना है, लेकिन पिछले संस्करणों में नहीं (numpy.set_printoptions का विकल्प)।ट्रेविस सीआई

चूंकि ट्रैविस सीआई बिल्ड मशीन उबंटू 12.04 पर आधारित हैं, डिफ़ॉल्ट रूप से मेरे पास केवल नकली 1.6.1 उपलब्ध है। मैं तो Ubuntu 14.04 के लिए Numpy-1.8.1-डेबियन-पैकेज स्थापित करने की कोशिश की और इसे मैन्युअल रूप से निर्भरता है, जो आगे की समस्याओं के लिए नेतृत्व किया है: Numpy 1.8 स्थापित करने के लिए सक्षम होने के लिए

मैं संकुल libblas3 स्थापित करने की आवश्यकता और liblapack3, जो संभव नहीं है जब liblapack3gf और libblas3gf सिस्टम (जो डिफ़ॉल्ट रूप से वहां हैं) पर स्थापित हैं, क्योंकि संकुल उन्हें "तोड़ देंगे"। यदि मैं apt-get remove उन्हें, स्वचालित रूप सेlibatlas3gf-base उसी apt-get -command (जो मानक उबंटू सिस्टम पर मामला नहीं है, के माध्यम से स्थापित किया जा रहा है, मैं भी सुनिश्चित करने के लिए अपनी स्थानीय मशीन पर एक सेट अप करता हूं)। यदि मैं फिर Vlibatlas3gf-baseV को अनइंस्टॉल करने का प्रयास करता हूं, तो फिर से liblapack3gf और libblas3gf स्वचालित रूप से फिर से इंस्टॉल हो रहे हैं।

मुझे वास्तव में पता नहीं है कि इस समस्या को कैसे संभालना है, या ट्रैविस के साथ काम करने के लिए नकली 1.8 प्राप्त करने के लिए इसके आसपास कैसे जाना है। मैंने pip के माध्यम से here प्रदान किए बिना न्यूम्पी को अपग्रेड करने के सुझावों का भी प्रयास किया, लेकिन ट्रैविस के भीतर यह काम नहीं किया।

किसी भी मदद की अत्यधिक सराहना की जाती है!

बहुत बहुत धन्यवाद!


समाधान:

मैं here और here से, निम्नलिखित .travis.yml -file को rth के जवाब पूरा आगे मदद से:

language: python 

matrix: 
    include: 
    - python: 2.7 
     env: NUMPY=1.8 SCIPY=0.13 

notifications: 
    email: false 

before_install: 
- travis_retry wget http://repo.continuum.io/miniconda/Miniconda-3.8.3-Linux-x86_64.sh -O miniconda.sh 
- chmod +x miniconda.sh 
- bash miniconda.sh -b -p $HOME/miniconda 
- export PATH=/home/travis/miniconda/bin:$PATH 
- conda update --yes conda 

install: 
- conda create --yes -n test python=$TRAVIS_PYTHON_VERSION 
- source activate test 
- conda install --yes numpy=$NUMPY scipy=$SCIPY matplotlib pip 
- pip install setuptools 
- [ ... some other packages to install ... ] 
- python setup.py install 

script: 
- nosetests 

अब सब कुछ उम्मीद के रूप में काम करता है। कृपया ध्यान दें: आप नहीं इस सेटअप के साथ पीईएलएब आयात और उपयोग करने में सक्षम होंगे, स्पष्टीकरण के लिए नीचे दी गई टिप्पणियां देखें।

+0

आप शायद (pylab आयात करने के लिए (यह [जवाब] देख PyQt4 स्थापित करने की आवश्यकता https://stackoverflow.com/questions/19231944/anaconda-unable-to-import -pylab)), 'sudo apt-get python-qt4' स्थापित करें। एक साइड नोट के रूप में, जब संभव हो तो 'पिलैब' का उपयोग टालना चाहिए, विशेष रूप से एक गैर-इंटरैक्टिव वातावरण में, और स्पष्ट आयात को प्राथमिकता दी जानी चाहिए: 'एनपी' के रूप में आयात करें, 'आयात matplotlib.pyplot plt' के रूप में आयात करें (यदि आप भूखंडों की आवश्यकता है) आदि – rth

+0

@rth इसे क्यों टाला जाना चाहिए? क्योंकि अगर इसे टालना उचित है, तो मैं ट्रेविस में काम कर रहे पाइलाब को पाने की कोशिश करने के बजाय अपने कोड को बदलने में प्रयास करना चाहता हूं। – mindm49907

+0

ठीक है अगर आप 'पिलैब आयात से' करते हैं, तो 'numpy', 'scipy',' matplotlib' आदि से नाम की जगह में बहुत सारी चीज़ें आयात की जाती हैं और आप वास्तव में क्या हो रहा है इसके नियंत्रण में नहीं हैं। विशेष रूप से यदि आप यूनिट परीक्षण करते हैं, तो यह आवश्यक मॉड्यूल को स्पष्ट रूप से बेहतर आयात करता है। यह वास्तव में आपकी समस्या से संबंधित नहीं है, हालांकि, यह है कि आपके डिफ़ॉल्ट matplotlib बैकएंड को पीईक्यूटी 4 की आवश्यकता होती है (चाहे आप पिलैब का उपयोग करें या नहीं), आप समस्या से बचने के लिए बैकएंड को 'एजीजी' कहने के लिए भी बदल सकते हैं। – rth

उत्तर

3

निरंतर एकीकरण कार्य प्रवाह में स्रोतों से वैज्ञानिक पायथन मॉड्यूल का निर्माण (चाहे सीधे या pip के साथ) धीमा है (numpy के लिए 15 मिनट, यदि आपको scipy की आवश्यकता है, तो 15 मिनट), और संसाधनों का अपशिष्ट।

आपको एनाकोंडा द्वारा प्रदान किए गए एक जैसे, numpy के बाइनरी वितरण का उपयोग करना चाहिए।ट्रैविस सीआई के लिए आप इस्तेमाल कर सकते हैं,

language: python 

before_script: 
    - wget http://repo.continuum.io/miniconda/Miniconda-3.8.3-Linux-x86_64.sh -O miniconda.sh 
    - chmod +x miniconda.sh 
    - export PATH=/home/travis/miniconda/bin:$PATH 
    - conda install --yes numpy=1.8 

इसके अलावा इस और अधिक पूर्ण setup example ट्रैविस सीआई के लिए पर एक नजर है।

2

मैंने ट्रैविस सीआई पर pip के साथ Numpy 1.8.2 स्थापित करने का प्रयास किया और ऐसा लगता है कि ऐसा लगता है।

language: python 

before_script: 
    - pip uninstall numpy -y 
    - pip install -I numpy==1.8.2 

script: python -c 'import numpy; print numpy.version.version' 

आप देख सकते हैं कि इसे सफलतापूर्वक इस build log में 1.8.2 प्रिंट कर रहा है:

यहाँ मेरी .travis.yml फ़ाइल की सामग्री है।

आशा है कि इससे मदद मिलती है!

+1

आपके उत्तर के लिए धन्यवाद, लेकिन जैसा कि अन्य ने बताया कि इमारत में समय लगता है, इसलिए मैं पहले अन्य संभावनाओं का परीक्षण करना चाहता हूं, लेकिन आपके समाधान पर वापस आ सकता हूं, मैं ये मेरे लिए काम नहीं करूंगा। – mindm49907

0

numpy अब ट्रैविस सीआई पर pre-installed है। दुर्लभ अवसर के लिए कि पूर्व-स्थापित संस्करण नवीनतम numpy रिलीज से पुराना है, numpyavailable from PyPI हैं, इसलिए ट्रेविस सीआई पर numpy बनाने की कोई आवश्यकता नहीं है। एक example .travis.yml file से

अंश:

addons: 
    apt: 
    packages: 
    - gfortran 
    - libatlas-dev 
    - libatlas-base-dev 
    - liblapack-dev 
    - libgmp-dev 
    - libmpfr-dev 

before_install: 
    - pip install -U --only-binary=numpy,scipy numpy scipy 
संबंधित मुद्दे