我让Numpy和Matplotlib在Heroku上运行,我也试图安装Scipy.但是,Scipy需要安装BLAS [1],而Heroku平台上没有提供.在联系Heroku支持后,他们建议我将BLAS构建为静态库以进行部署,并设置必要的环境变量.
所以,我在64位Linux机器上编译了libblas.a,并按照[2]中的描述设置了以下变量:
$ heroku config
BLAS => .heroku/vendor/lib/libfblas.a
LD_LIBRARY_PATH => .heroku/vendor/lib
LIBRARY_PATH => .heroku/vendor/lib
PATH => bin:/usr/local/bin:/usr/bin:/bin
PYTHONUNBUFFERED => true
Run Code Online (Sandbox Code Playgroud)
在我的requirements.txt中添加scipy == 0.10.1之后,推送仍然失败.
File "scipy/integrate/setup.py", line 10, in configuration
blas_opt = get_info('blas_opt',notfound_action=2)
File "/tmp/build_h5l5y31i49e8/lib/python2.7/site-packages/numpy/distutils/system_info.py", line 311, in get_info
return cl().get_info(notfound_action)
File "/tmp/build_h5l5y31i49e8/lib/python2.7/site-packages/numpy/distutils/system_info.py", line 462, in get_info
raise self.notfounderror(self.notfounderror.__doc__)
numpy.distutils.system_info.BlasNotFoundError:
Blas (http://www.netlib.org/blas/) libraries not found.
Directories to search for the libraries can be specified in the
numpy/distutils/site.cfg file (section [blas]) or by setting
the BLAS environment variable.
Run Code Online (Sandbox Code Playgroud)
看来pip不知道BLAS环境变量,所以我使用heroku run python检查环境: …
我正在尝试在虚拟环境中使用 scikit-learn,但无法运行。
例如,我转到一个项目文件夹并安装 NumPy、SciPy 和 scikit-learn
virtualenv venv
source venv/bin/activate
pip install numpy
pip install scipy
pip install scikit-learn
然后我打开 python 并尝试导入它们中的每一个。
import numpy
import scipy
import sklearn
NumPy 和 SciPy 导入正常,但是当我尝试导入时,出现错误提示Library not loaded: @rpath/./libgfortran.3.dylib.
我在安装中缺少什么吗?
完整的错误信息:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/Peter/git/dataSandbox/flaskApps/sfSalary/venv/lib/python2.7/site-packages/sklearn/__init__.py", line 57, in <module>
from .base import clone
File "/Users/Peter/git/dataSandbox/flaskApps/sfSalary/venv/lib/python2.7/site-packages/sklearn/base.py", line 11, in <module>
from .utils.fixes import signature
File "/Users/Peter/git/dataSandbox/flaskApps/sfSalary/venv/lib/python2.7/site-packages/sklearn/utils/__init__.py", line 11, in <module>
from .validation import …