某些 Python 版本无法识别已安装的软件包
Some Python Versions not Recognizing Installed Packages
我已经使用来自 Python.org 的 python 安装程序在我的 macbook 上安装了 python。随后,我去安装了 pip、ipython 和 numpy。一切似乎都很好。但是,现在我遇到了以下问题。我可以在 运行 ipython 时导入 numpy,但在 运行 常规 python.
时不能
例如
Logister-MacBook-Pro:~ Logister$ ipython
Python 2.7.6 (default, Sep 9 2014, 15:04:36)
Type "copyright", "credits" or "license" for more information.
IPython 3.1.0 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]: import numpy
In [2]: import site; site.getsitepackages()
Out[2]:
['/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python',
'/Library/Python/2.7/site-packages']
然而,当我尝试在 python 2.7.9 中做同样的事情时:
Logister-MacBook-Pro:~ Logister$ python
Python 2.7.9 (v2.7.9:648dcafa7e5f, Dec 10 2014, 10:10:46)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named numpy
>>> import site; site.getsitepackages()
['/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python',
'/Library/Python/2.7/site-packages']
当我尝试通过 pip 安装 numpy 时,它给了我以下响应:
Logister-MacBook-Pro:~ Logister$ sudo -H pip install numpy
Requirement already satisfied (use --upgrade to upgrade):
numpy in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
似乎 python 2.7.6 知道在哪里可以找到 numpy,但 2.7.9 不知道。或者,我怎样才能将 2.7.9 指向正确的位置,或者我怎样才能安装 numpy 以便 2.7.9 也能看到它?
编辑:我可以 运行:
site.addsitedir('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python')
在 2.7.9 中,然后我可以导入 numpy。但我不想每次启动 2.7.9 时都这样做。有永久修复吗?另外,如何让 ipython 变为 运行 2.7.9 而不是 2.7.6?
我遇到了类似的问题。
您的计算机上安装了两个不同版本的 python。
然后你在 python 2.7.6 上安装了 numpy。但是 python 2.7.9 的文件夹没有 numpy。明白了吗?
另外,你的 macOS 有一组名为 "Environment Variables" 的变量,它用 python 2.7.9.
识别命令 python
那么如果你想在 python 的解释器中使用 numpy,你需要更改命令的环境变量 "python" 使用版本 2.7.6 或安装 numpy 在 python 2.7.9 并使用两个版本。
祝你好运!
我可以通过将以下行添加到我的 .bash_profile:
来解决问题
export PYTHONPATH=${PYTHONPATH}:/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
然后我按照 this Whosebug question.
更改了 Ipython 版本
对于 2 个不同的版本,您的机器上必须有 2 个 python 解释器。它们安装在具有不同库的不同位置。所以你在使用解释器B时找不到解释器A上安装的模块是对的。which命令可以帮助你找出那些解释器在哪里。您可以从一个文件夹手动创建一个符号 link 到另一个文件夹,但这会弄乱您的想法,您以后可能会迷路。
我建议您通过 Homebrew 安装 python 和 ipython,这样它会自动为您完成所有繁重的工作。
安装自制程序
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
既然你说了 numpy,你可能正在寻找科学的东西,所以:
# set up some taps and update brew
brew tap homebrew/science # a lot of cool formulae for scientific tools
brew tap homebrew/python # numpy, scipy, matplotlib, ...
brew update && brew upgrade
# install a brewed python
brew install python
稍后你可以运行,但我建议你遵循this教程:
brew install zmq
pip install ipython[all]
我已经使用来自 Python.org 的 python 安装程序在我的 macbook 上安装了 python。随后,我去安装了 pip、ipython 和 numpy。一切似乎都很好。但是,现在我遇到了以下问题。我可以在 运行 ipython 时导入 numpy,但在 运行 常规 python.
时不能例如
Logister-MacBook-Pro:~ Logister$ ipython
Python 2.7.6 (default, Sep 9 2014, 15:04:36)
Type "copyright", "credits" or "license" for more information.
IPython 3.1.0 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]: import numpy
In [2]: import site; site.getsitepackages()
Out[2]:
['/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python',
'/Library/Python/2.7/site-packages']
然而,当我尝试在 python 2.7.9 中做同样的事情时:
Logister-MacBook-Pro:~ Logister$ python
Python 2.7.9 (v2.7.9:648dcafa7e5f, Dec 10 2014, 10:10:46)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named numpy
>>> import site; site.getsitepackages()
['/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python',
'/Library/Python/2.7/site-packages']
当我尝试通过 pip 安装 numpy 时,它给了我以下响应:
Logister-MacBook-Pro:~ Logister$ sudo -H pip install numpy
Requirement already satisfied (use --upgrade to upgrade):
numpy in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
似乎 python 2.7.6 知道在哪里可以找到 numpy,但 2.7.9 不知道。或者,我怎样才能将 2.7.9 指向正确的位置,或者我怎样才能安装 numpy 以便 2.7.9 也能看到它?
编辑:我可以 运行:
site.addsitedir('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python')
在 2.7.9 中,然后我可以导入 numpy。但我不想每次启动 2.7.9 时都这样做。有永久修复吗?另外,如何让 ipython 变为 运行 2.7.9 而不是 2.7.6?
我遇到了类似的问题。 您的计算机上安装了两个不同版本的 python。 然后你在 python 2.7.6 上安装了 numpy。但是 python 2.7.9 的文件夹没有 numpy。明白了吗?
另外,你的 macOS 有一组名为 "Environment Variables" 的变量,它用 python 2.7.9.
识别命令 python那么如果你想在 python 的解释器中使用 numpy,你需要更改命令的环境变量 "python" 使用版本 2.7.6 或安装 numpy 在 python 2.7.9 并使用两个版本。
祝你好运!
我可以通过将以下行添加到我的 .bash_profile:
来解决问题export PYTHONPATH=${PYTHONPATH}:/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
然后我按照 this Whosebug question.
更改了 Ipython 版本对于 2 个不同的版本,您的机器上必须有 2 个 python 解释器。它们安装在具有不同库的不同位置。所以你在使用解释器B时找不到解释器A上安装的模块是对的。which命令可以帮助你找出那些解释器在哪里。您可以从一个文件夹手动创建一个符号 link 到另一个文件夹,但这会弄乱您的想法,您以后可能会迷路。
我建议您通过 Homebrew 安装 python 和 ipython,这样它会自动为您完成所有繁重的工作。
安装自制程序
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
既然你说了 numpy,你可能正在寻找科学的东西,所以:
# set up some taps and update brew
brew tap homebrew/science # a lot of cool formulae for scientific tools
brew tap homebrew/python # numpy, scipy, matplotlib, ...
brew update && brew upgrade
# install a brewed python
brew install python
稍后你可以运行,但我建议你遵循this教程:
brew install zmq
pip install ipython[all]