Trong dự án của tôi, tôi (phải) sử dụng một tính năng có trong Numpy 1.8, nhưng không có trong các phiên bản trước đó (tùy chọn formatter
của numpy.set_printoptions
).Cài đặt Numpy 1.8 trong Travis CI
Vì máy xây dựng Travis CI dựa trên Ubuntu 12.04, theo mặc định, tôi chỉ có sẵn Numpy 1.6.1. Sau đó tôi đã cố gắng cài đặt gói Numpy-1.8.1-Debian cho Ubuntu 14.04 và các phụ thuộc theo cách thủ công, dẫn đến các vấn đề khác:
Tôi cần cài đặt gói libblas3
và liblapack3
để có thể cài đặt Numpy 1.8, điều này là không thể khi liblapack3gf
và libblas3gf
được cài đặt trên hệ thống (có sẵn theo mặc định), vì các gói sẽ "ngắt" chúng. Nếu tôi apt-get remove
, tự độnglibatlas3gf-base
đang được cài đặt thông qua cùng một apt-get
-command (không phải là trường hợp trên hệ thống Ubuntu chuẩn, tôi thậm chí còn đặt một máy trên máy cục bộ của mình để đảm bảo). Nếu sau đó tôi cố gắng gỡ cài đặt Vlibatlas3gf-baseV, một lần nữa liblapack3gf
và libblas3gf
sẽ tự động được cài đặt lại.
Tôi không thực sự biết cách xử lý vấn đề này, hoặc làm thế nào để có được nó để có được Numpy 1.8 làm việc với Travis. Tôi cũng đã thử các đề xuất để nâng cấp Numpy qua pip
được cung cấp here, nhưng trong Travis điều này không hoạt động.
Mọi trợ giúp đều được đánh giá cao!
Cảm ơn bạn rất nhiều!
Giải pháp:
tôi hoàn thành câu trả lời rth để các .travis.yml
-file sau, với sự giúp đỡ hơn nữa từ here và here:
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
Bây giờ mọi thứ hoạt động như mong đợi. Xin lưu ý: bạn sẽ không phải mới có thể nhập và sử dụng PyLab với thiết lập này, hãy xem các nhận xét bên dưới để biết giải thích.
Bạn có thể cần phải cài đặt PyQt4 nhập pylab (xem này [trả lời] (https://stackoverflow.com/questions/19231944/anaconda-unable-to-import -pylab)), 'sudo apt-get cài đặt python-qt4'. Lưu ý phụ, nên tránh sử dụng 'pylab' khi có thể, đặc biệt là trong một môi trường không tương tác, và nhập khẩu rõ ràng sẽ được ưu tiên:' import numpy as np', 'import matplotlib.pyplot as plt' (nếu bạn cần lô) vv. – rth
@rth Tại sao nên tránh? Bởi vì nếu nó là hợp lý để tránh nó, tôi sẽ có xu hướng thay vì đặt nỗ lực trong việc thay đổi mã của tôi hơn để tiếp tục cố gắng để có được PyLab làm việc trong Travis. – mindm49907
Vâng, nếu bạn làm 'từ nhập khẩu pylab *' rất nhiều thứ được nhập khẩu trong không gian tên, từ 'numpy',' scipy', 'matplotlib' vv và bạn không thực sự kiểm soát những gì đang xảy ra. Đặc biệt nếu bạn làm bài kiểm tra đơn vị, tốt hơn là nhập khẩu các mô-đun yêu cầu một cách rõ ràng. Điều này không thực sự liên quan đến vấn đề của bạn, nó chỉ là phần mềm matplotlib mặc định của bạn dường như yêu cầu PyQt4 (cho dù bạn dùng pylab hay không), bạn cũng có thể thay đổi backend để nói 'Agg' để tránh vấn đề. – rth