kri*_*711 1 python pip amazon-web-services
当部署到弹性beanstalk时,我不断收到错误:
Partial import of sklearn during the build process.
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-build-Le610u/scikit-learn/setup.py", line 247, in <module>
setup_package()
File "/tmp/pip-build-Le610u/scikit-learn/setup.py", line 237, in setup_package
.format(scipy_req_str, instructions))
ImportError: Scientific Python (SciPy) is not installed.
scikit-learn requires SciPy >= 0.9.
Installation instructions are available on the scikit-learn website: http://scikit-learn.org/stable/install.html
Run Code Online (Sandbox Code Playgroud)
我的requirements.txt里面有scikit-learn和scipy.
为什么会这样?我不想手动安装软件包,并且在印象中,pip会为我排序安装顺序(它目前正在尝试在scipy之前安装scikit-learn).值得注意的是相同的requirements.txt在我的本地计算机上运行得非常好.
我该怎么做才能解决这个问题?
编辑:如果我更改requirements.txt中条目的顺序,所以scipy高于scikit-learn,它可以正常工作.我仍然想知道为什么这会失败反过来,因为pip freeze> requirements.txt将按字母顺序覆盖它.
需求文件是包含要使用的项目列表的文件pip:
逻辑上,Requirements文件只是放在文件中的pip安装参数列表.
因此,您的条目requirements.txt将按顺序处理.就像现在一样,pip 没有真正的依赖解析,而scipy缺乏正确install_requires的setup.py,你必须首先告诉pip install scipy.(如果您有兴趣,请参阅Donald Stufft撰写的"setup.py vs requirements.txt")
requirements.txt在运行脚本之前,在本地计算机上运行相同的原因可能是您安装了scipy.您可以通过virtualenv在计算机上创建一个干净的python环境来验证这一点,然后再次运行该脚本.