【问题标题】:Astropy isn't working with PythonAstropy 不适用于 Python
【发布时间】:2016-07-11 04:41:09
【问题描述】:

我最近在使用 Python 时遇到了困难,主要是因为我认为我有几个版本和冲突(由于 Anaconda 安装、canopy 安装等)。所以我清理了那些。

我通过 brew 重新安装了 python (2.7)。

我通过 pip 重新安装了 numpy 和 matplotlib。 我还通过 pip 重新安装了 astropy 和 h5py。

但是,我得到了 numpy 和 matplotlib 的干净导入,但没有 astropy 和 h5py:

~ > python
Python 2.7.10 (default, Oct 23 2015, 19:19:21) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> import matplotlib
>>> import astropy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named astropy
>>> import h5py
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
ImportError: No module named h5py
>>> 

【问题讨论】:

  • 显然你没有在使用的解释器中安装astropyh5py。检查python -m pip list 是否列出astropyh5pypip 可能符号链接到其他二进制文件,与您当前使用的解释器无关。
  • 确保which pythonwhich pip 的输出有意义,并且``head which pip``` matches with which python. Make sure you understand everything that's in your $PATH` 的输出对你来说是合乎逻辑的。删除任何没有意义的东西。与$PYTHONPATH 相同(事实上,我建议完全清除$PYTHONPATH 并且几乎从不使用它——如果您想要使用virtualenv 的包的备用安装位置)。

标签: python numpy matplotlib pip astropy


【解决方案1】:

我的怀疑是您的pip 可执行文件未链接到您的python 可执行文件,这意味着当您运行pip install astropy 时,它会将其安装在不同的蟒蛇。

确保您使用正确 pip 的一种方法是不使用

$ pip install astropy

而是使用

$ python -m pip install astropy

如果失败,可能意味着你没有为你正在使用的 python 实例安装 pip,你需要install it(注意对于 Python 2 版本 2.7.9 或更高版本,或者 Python 3 3.4 或更高版本,pip 与 Python 捆绑在一起)。

如果这仍然不起作用,那么奇怪的事情正在发生。这可能是因为将$PYTHONPATH$LD_LIBRARY_PATH/$DYLD_LIBRARY_PATH 设置为干扰您的python 导入。在这种情况下,您可以清除这些变量并重试。否则,我会考虑使用包包,例如 condacanopy。它使这类安装问题变得更加顺畅。


编辑:我现在看到您使用了 conda 和 canopy,并且您怀疑这些是导致您的问题的原因。根据设计,Conda 和 canopy 都将它们的 python 安装沙箱化,这样它们就不会受到系统中其他安装的干扰,除非你通过设置我上面提到的环境变量来强制这种干扰。我建议重新安装 conda 并从 bash/csh 启动脚本中清除这些环境变量。

【讨论】:

  • @Rogalski 我在这两种情况下都尝试过“python -m pip install astropy”和“python -m pip list”并得到“/usr/bin/python:没有名为 pip 的模块”,所以有什么不对劲...
  • 听起来好像没有为 /usr/bin/python 安装 pip。尝试按照pip.pypa.io/en/stable/installing 的说明进行操作
猜你喜欢
  • 2016-04-26
  • 2022-11-26
  • 1970-01-01
  • 2015-05-28
  • 2017-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多