我有一个带有python3.3墨盒的OpenShift设备。在此,我正在尝试安装Scipy。我尝试了一种简单的方法,只需将 scipy 放在 setup.py 文件的 install_requires 字段中。
这不起作用,我收到错误:
ImportError: No module named 'numpy.f2py'
好的,也许我需要升级我的numpy版本。我再次尝试在setup命令的 install_requires 字段中将 numpy 更改为 numpy == 1.8.2 。这似乎安装得很好,但我从scipy的安装中得到了同样的错误。
好的,现在我尝试ssh-ing到我的openshift装备(rhc ssh app-name)。我尝试第一件事只是 pip install scipy ,我基本上得到了同样的错误:
$ source ~/python/virtenv/venv/bin/activate
(venv) $ pip install scipy
...
ImportError: No module named 'numpy.f2py'
Cleaning up ...
...
好的,我试试 pip冻结:
(venv) $ pip freeze
...
numpy=1.7.2
...
类似地:
(venv) $ python
Python 3.3.2 (default, Mar 20 2014, 20:25:51)
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy.f2py
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'numpy.f2py'
好的,让我们尝试强制升级:
(venv) $ pip install --upgrade -I numpy
.... success ....
(venv) $ pip freeze
...
numpy=1.7.2
嗯。我使用和不使用 -I 并使用和不使用 numpy == 1.8.2 进行尝试。每个都有相同的结果。 Numpy真的想留在全球安装版本。现在,如果我查看 lib 目录,我看到:
(venv) $ ls ~/python/virtenv/venv/lib/python3.3/site-packages
bottle-0.12.7-py3.3.egg pip-1.5.6.dist-info
docopt-0.6.2-py3.3.egg __pycache__
easy-install.pth pyparsing-2.0.2-py3.3.egg
Jinja2-2.7.3-py3.3.egg SQLAlchemy-0.9.7-py3.3-linux-x86_64.egg
lazy-1.2-py3.3.egg virtualenv-1.11.6.dist-info
...
好的基本上我在 setup.py 其他的 install_requires 字段中的每个包都比 numpy 。所以现在我查看 lib64 目录:
(venv) $ ls ~/python/virtenv/venv/lib64/python3.3/site-packages
numpy numpy-1.8.0-py3.3.egg-info numpy-1.8.1-py3.3.egg-info numpy-1.8.2-py3.3.egg-info
基本上我尝试安装 numpy 的每个升级版本(已报告成功)。那么,如何让 pip freeze 进入这个目录呢?我想更普遍的是我需要 pip echo-system和python来查看这个目录中已安装的软件包。
或者,我做错了什么?