Python for mac 中包安裝管理——No module named numpy引發的一系列探索


目錄

前言

一 管理虛擬環境軟件

  1.1 Mac Python管理虛擬環境軟件安裝-Pyenv具體的流程

  1.2 Mac Python管理虛擬環境軟件安裝-Anaconda具體的流程

  1.3 Mac Python管理虛擬環境軟件安裝-pip具體的流程

二 探索的起因

  2.1 具體的問題(報錯)

  2.2 先檢查Python的安裝與路徑

  2.3 安裝包——Numpy

  2.4 安裝包——matplotlib

  2.5 安裝包——scipy

  2.6 安裝pandas

  2.7 安裝TensorFlow 

 

 

 

前言

大家要在開發中,使用多個python版本的,強烈建議使用安裝管理器工具管理虛擬環境,不然就會出現以下一系列報錯。因此會教你如何安裝Python的 pandas等各類包。

安裝brew,安裝教程。我們通過brew可以快捷方便的下載我們需要的各類軟件,包括pyenv,Anaconda,virtualenv(虛擬環境)等。我們通過以下途徑來完成python包的管理:

 

1. Anaconda:安裝pandas、Python和SciPy最簡單的方式是用Anaconda。Anaconda是關於Python數據分析和科學計算的分發包。


2. Miniconda
使用Anaconda會安裝一百多個依賴包,如果想靈活控制安裝的依賴包或帶寬有限,使用Miniconda是個不錯的選擇。
Conda是個包管理器,Anaconda就是建立在它的基礎上。Conda不只跨平台還與語言無關,與pip和virtualenv相結合的作用相似。
Miniconda允許先創建包含Python的安裝包,然后用conda安裝其他的依賴包。

 

3. pip
pandas可以通過pip安裝,但要安裝相關的依賴包。
[plain] view plain copy
pip install pandas

 

4. 包管理器
可以用linux的包管理器進行安裝,如
[plain] view plain copy
sudo apt-get install python-pandas 
zypper in python-pandas

 

5. 源碼安裝
從源碼安裝需要安裝最新的Cython,可用easy-install -U cython安裝。源碼位於http://github.com/pydata/pandas,安裝過程為

[plain] view plain copy
git clone git://github.com/pydata/pandas.git 
cd pandas 
python setup.py install

 

 

 

一 管理虛擬環境軟件

1.1 Mac Python管理虛擬環境軟件安裝-Pyenv具體的流程

1 先安裝管理軟件pyenv

個人安裝信息

 

87:~ jss$ brew install pyenv

Updating Homebrew...

==> Auto-updated Homebrew!

Updated 1 tap (homebrew/core).

==> Updated Formulae

app-engine-java     geth                lorem               radare2

bit                 getmail             mapnik              roswell

calabash            gtk+                node                s-nail

cayley              gutenberg           node@4              sassc

conan               gxml                node@6              saxon

diffuse             heroku              node@8              spigot

django-completion   igv                 nspr                syncthing

docfx               jbake               odpi                tile38

flow                jenkins             onetime             yaml-cpp

fluent-bit          just                openimageio         yarn

flyway              kerl                php

fn                  libsass             plank

 

==> Installing dependencies for pyenv: autoconf, pkg-config, openssl, readline

==> Installing pyenv dependency: autoconf

==> Downloading https://homebrew.bintray.com/bottles/autoconf-2.69.high_sierra.b

######################################################################## 100.0%

==> Pouring autoconf-2.69.high_sierra.bottle.4.tar.gz

==> Caveats

Emacs Lisp files have been installed to:

  /usr/local/share/emacs/site-lisp/autoconf

==> Summary

🍺  /usr/local/Cellar/autoconf/2.69: 71 files, 3.0MB

==> Installing pyenv dependency: pkg-config

==> Downloading https://homebrew.bintray.com/bottles/pkg-config-0.29.2.high_sier

######################################################################## 100.0%

==> Pouring pkg-config-0.29.2.high_sierra.bottle.tar.gz

🍺  /usr/local/Cellar/pkg-config/0.29.2: 11 files, 627.2KB

==> Installing pyenv dependency: openssl

==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2n.high_sierra.

######################################################################## 100.0%

==> Pouring openssl-1.0.2n.high_sierra.bottle.tar.gz

==> Caveats

A CA file has been bootstrapped using certificates from the SystemRoots

keychain. To add additional certificates (e.g. the certificates added in

the System keychain), place .pem files in

  /usr/local/etc/openssl/certs

 

and run

  /usr/local/opt/openssl/bin/c_rehash

 

This formula is keg-only, which means it was not symlinked into /usr/local,

because Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries.

 

If you need to have this software first in your PATH run:

  echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile

 

For compilers to find this software you may need to set:

    LDFLAGS:  -L/usr/local/opt/openssl/lib

    CPPFLAGS: -I/usr/local/opt/openssl/include

For pkg-config to find this software you may need to set:

    PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig

 

==> Summary

🍺  /usr/local/Cellar/openssl/1.0.2n: 1,792 files, 12.3MB

==> Installing pyenv dependency: readline

==> Downloading https://homebrew.bintray.com/bottles/readline-7.0.3_1.high_sierr

######################################################################## 100.0%

==> Pouring readline-7.0.3_1.high_sierra.bottle.tar.gz

==> Caveats

This formula is keg-only, which means it was not symlinked into /usr/local,

because macOS provides the BSD libedit library, which shadows libreadline.

In order to prevent conflicts when programs look for libreadline we are

defaulting this GNU Readline installation to keg-only..

 

For compilers to find this software you may need to set:

    LDFLAGS:  -L/usr/local/opt/readline/lib

    CPPFLAGS: -I/usr/local/opt/readline/include

 

==> Summary

🍺  /usr/local/Cellar/readline/7.0.3_1: 46 files, 1.5MB

==> Installing pyenv

==> Downloading https://homebrew.bintray.com/bottles/pyenv-1.2.2.high_sierra.bot

######################################################################## 100.0%

==> Pouring pyenv-1.2.2.high_sierra.bottle.tar.gz

🍺  /usr/local/Cellar/pyenv/1.2.2: 593 files, 2.4MB

 

2 安裝后添加環境變量,在terminal中輸入

 

 sudo vi ~/.bash_profile

 

3 填寫的具體變量內容

(個人信息:修改后備份 export PATH=${PATH}:/usr/local/mysql/bin )

 

export PYENV_ROOT=/usr/local/var/pyenv

if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi

 

4 使環境變量生效,需要使環境變量生效,運行命令

 

. ~/.bash_profile 

#或者

source ~/.bash_profile

 

版本切換

 

 

 

參考:

❌https://www.jianshu.com/p/972512527e9a   -簡書/Mac OSX下Python多版本管理器pyenv的安裝及使用

http://blog.csdn.net/suyumingxiangguan/article/details/69942055   -csdn/Mac多Python版本共存,多個獨立Python開發環境切換。 

 

 

 

1.2 Mac Python管理虛擬環境軟件安裝-Anaconda具體的流程 

a Anaconda簡介

然后就是多方式安裝包或者模塊。其中優先conda,其次pip,再次https://www.lfd.uci.edu/~gohlke/pythonlibs/或者各種官網,最后自己編譯

conda下載的是二進制,pip有的會下載源碼編譯

Anaconda軟件集成了很多python的庫,包括pandas,用python做數據分析的很多人都用這個

 

Anaconda 是一個用於科學計算的Python發行版,支持 Linux, Mac, Windows系統,提供了包管理與環境管理的功能,可以很方便地解決多版本python並存、切換以及各種第三方包安裝問題。

Anaconda利用工具/命令conda來進行package和environment的管理,並且已經包含了Python和相關的配套工具。 這里先解釋下conda、anaconda這些概念的差別。是一個打包的集合,里面預裝好了conda、某個版本的python、眾多packages、科學計算工具等等,所以也稱為Python的一種發行版。

conda可以理解為一個工具,也是一個可執行命令,其核心功能是包管理與環境管理。包管理與pip的使用類似,環境管理則允許用戶方便地安裝不同版本的python並可以快速切換。

 

Anaconda使用方法

 

參考:

http://blog.csdn.net/superdont/article/details/54233017   - csdn/Anaconda的安裝與配置/鏡像的配置

http://www.cnblogs.com/welhzh/p/6009246.html   -cnblog/python 安裝anaconda, numpy, pandas, matplotlib 等/terminal conda的操作與鏡像的配置

https://www.zhihu.com/question/47003185   -知乎/如何優雅的安裝Python的pandas?

https://www.jianshu.com/p/2f3be7781451   -簡書/Anaconda使用總結

http://blog.csdn.net/cxsydjn/article/details/71057124   -csdn/Mac OS下 Anaconda Python2 和 Python3 配置/界面簡介和python不同版本安裝

https://www.cnblogs.com/amanda-x/p/7739467.html   -cnblogs/Anaconda安裝與環境配置

 

 

 

1.3 Mac Python管理虛擬環境軟件安裝-pip具體的流程 

1 優缺點

缺點:下載速度慢,20180308安裝中,下載速度介於20-50kb/s

優點:方便簡單,無需太多的安裝與操作 

 

2 查看已安裝包列表 

 

#適用於mac中python2.x 版本
pip list  

 

#適用於mac中python3.x 版本
pip3 list

 

 

 

3 安裝依賴包和模塊

#適用於mac中python2.x 版本,xx是包名稱
pip install xx  

 

#適用於mac中python3.x 版本,xx是包名稱
pip3 install xx  

 

 

 

參考:

✅https://www.cnblogs.com/tensorflownews/p/7298646.html   -cnbolg/在 Mac OS X 上安裝 TensorFlow 

 https://www.jianshu.com/p/4646dedaaff5   -簡書/Python安裝與版本管理/pip使用沙盒使用

 

 

二 探索的起因

2.1 具體的問題(報錯)

半路出家,調試代碼中出現以下錯誤

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

ModuleNotFoundError: No module named 'numpy'

 

Traceback (most recent call last):

  File "MLCNN.py", line 8, in <module>

    import matplotlib.pyplot as plt

ModuleNotFoundError: No module named 'matplotlib'

 

Traceback (most recent call last):

  File "MLCNN.py", line 9, in <module>

    import scipy.io

ModuleNotFoundError: No module named 'scipy'

 

Traceback (most recent call last):

  File "MLCNN.py", line 11, in <module>

    import tensorflow as tf

ModuleNotFoundError: No module named 'tensorflow'

 

Traceback (most recent call last):
File "MLCNN.py", line 12, in <module>
import pandas as pd
ModuleNotFoundError: No module named 'pandas'

 

 

 

 

2.2 先檢查Python的版本與路徑

1 查看python版本

#注意:‘-V‘中‘V’為大寫字母,只有一個‘-’
python -V  

 

#注意:‘--version'中有兩個‘-’
python --version 

 

2 查看python安裝位置

python3以上的版本 注意print的時候使用的是括號,python3以下版本的不需要括號

python -c "import sys; print (sys.executable)"

 

python -c "import os; print (os.sys.executable)" python -c "import os; path = os.sys.executable;folder=path[0 : path.rfind(os.sep)]; print folder"

 

 

 

2.3 安裝包——Numpy(pip)

1 查看Numpy版本 

 

python -c "import numpy; print (numpy.version.version)"
python3 -c "import numpy; print (numpy.__version__)"

 

2 查看Numpy安裝路徑 

#python2.x版本
python -c "import numpy; print (numpy.__file__)"
python -c "import numpy; print (numpy.__file__)"

 

 

#python3.x版本
python3 -c "import numpy; print (numpy.__file__)"
python3 -c "import numpy; print (numpy.__file__)"

 

3 安裝

$pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose --prefix=~/local

 

4 將package安裝到指定目錄:通過源碼安裝一個python包的時候,例如安裝xlrd,目標路徑為/usr/local/lib/python2.7/site-packages/

$ pip install -t /usr/local/lib/python2.7/site-packages/ xlrd

 

5 或者我已經測試成功的,網站為

$mac os x: Python 3 安裝(scipy,numpy,matplotlib. . .)

 

 

 

2.4 安裝包——matplotlib

方法一 使用Pip

先安裝pip,參考標准pip安裝指令

curl -O https://bootstrap.pypa.io/get-pip.py

 

安裝到Python2.7

python get-pip.py

 

安裝到Python3

python3 get-pip.py

 

安裝Matplotlib

pip install matplotlib

 

報錯:猜測可能是因為多個版本造成的問題,我的目標安裝是python36,最后在這個論壇里找到解決方法

Requirement already satisfied: matplotlib in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python

Requirement already satisfied: numpy>=1.5 in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from matplotlib)

Requirement already satisfied: python-dateutil in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from matplotlib)

Requirement already satisfied: tornado in ./Library/Python/2.7/lib/python/site-packages (from matplotlib)

Requirement already satisfied: pyparsing>=1.5.6 in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from matplotlib)

Requirement already satisfied: nose in ./Library/Python/2.7/lib/python/site-packages (from matplotlib)

Requirement already satisfied: singledispatch in ./Library/Python/2.7/lib/python/site-packages (from tornado->matplotlib)

Requirement already satisfied: certifi in ./Library/Python/2.7/lib/python/site-packages (from tornado->matplotlib)

Requirement already satisfied: backports_abc>=0.4 in ./Library/Python/2.7/lib/python/site-packages (from tornado->matplotlib)

Requirement already satisfied: six in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from singledispatch->tornado->matplotlib)

我的pip list

DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.

altgraph (0.10.2)

appnope (0.1.0)

backports-abc (0.5)

backports.functools-lru-cache (1.5)

backports.shutil-get-terminal-size (1.0.0)

bdist-mpkg (0.5.0)

bleach (2.1.2)

bonjour-py (0.3)

certifi (2018.1.18)

configparser (3.5.0)

cycler (0.10.0)

decorator (4.2.1)

entrypoints (0.2.3)

enum34 (1.1.6)

functools32 (3.2.3.post2)

html5lib (1.0.1)

ipykernel (4.8.2)

ipython (5.5.0)

ipython-genutils (0.2.0)

ipywidgets (7.1.2)

Jinja2 (2.10)

jsonschema (2.6.0)

jupyter (1.0.0)

jupyter-client (5.2.2)

jupyter-console (5.2.0)

jupyter-core (4.4.0)

lxml (4.1.1)

macholib (1.5.1)

Markdown (2.6.9)

MarkupSafe (1.0)

matplotlib (2.1.2)

mistune (0.8.3)

modulegraph (0.10.4)

mpmath (1.0.0)

nbconvert (5.3.1)

nbformat (4.4.0)

nose (1.3.7)

notebook (5.4.0)

numpy (1.14.1)

pandas (0.22.0)

pandocfilters (1.4.2)

pathlib2 (2.3.0)

pexpect (4.4.0)

pickleshare (0.7.4)

pip (9.0.1)

prompt-toolkit (1.0.15)

ptyprocess (0.5.2)

py2app (0.7.3)

Pygments (2.2.0)

pyobjc-core (2.5.1)

pyobjc-framework-Accounts (2.5.1)

pyobjc-framework-AddressBook (2.5.1)

pyobjc-framework-AppleScriptKit (2.5.1)

pyobjc-framework-AppleScriptObjC (2.5.1)

pyobjc-framework-Automator (2.5.1)

pyobjc-framework-CFNetwork (2.5.1)

pyobjc-framework-Cocoa (2.5.1)

pyobjc-framework-Collaboration (2.5.1)

pyobjc-framework-CoreData (2.5.1)

pyobjc-framework-CoreLocation (2.5.1)

pyobjc-framework-CoreText (2.5.1)

pyobjc-framework-DictionaryServices (2.5.1)

pyobjc-framework-EventKit (2.5.1)

pyobjc-framework-ExceptionHandling (2.5.1)

pyobjc-framework-FSEvents (2.5.1)

pyobjc-framework-InputMethodKit (2.5.1)

pyobjc-framework-InstallerPlugins (2.5.1)

pyobjc-framework-InstantMessage (2.5.1)

pyobjc-framework-LatentSemanticMapping (2.5.1)

pyobjc-framework-LaunchServices (2.5.1)

pyobjc-framework-Message (2.5.1)

pyobjc-framework-OpenDirectory (2.5.1)

pyobjc-framework-PreferencePanes (2.5.1)

pyobjc-framework-PubSub (2.5.1)

pyobjc-framework-QTKit (2.5.1)

pyobjc-framework-Quartz (2.5.1)

pyobjc-framework-ScreenSaver (2.5.1)

pyobjc-framework-ScriptingBridge (2.5.1)

pyobjc-framework-SearchKit (2.5.1)

pyobjc-framework-ServiceManagement (2.5.1)

pyobjc-framework-Social (2.5.1)

pyobjc-framework-SyncServices (2.5.1)

pyobjc-framework-SystemConfiguration (2.5.1)

pyobjc-framework-WebKit (2.5.1)

pyOpenSSL (0.13.1)

pyparsing (2.2.0)

python-dateutil (2.6.1)

pytz (2018.3)

pyzmq (17.0.0)

qtconsole (4.3.1)

scandir (1.7)

scipy (0.13.0b1)

Send2Trash (1.5.0)

setuptools (18.5)

simplegeneric (0.8.1)

singledispatch (3.4.0.3)

six (1.11.0)

subprocess32 (3.2.7)

sympy (1.1.1)

terminado (0.8.1)

testpath (0.3.1)

tornado (4.5.3)

traitlets (4.3.2)

virtualenv (15.1.0)

wcwidth (0.1.7)

webencodings (0.5.1)

widgetsnbextension (3.1.4)

xattr (0.6.4)

zope.interface (4.1.1)

 

執行的命令

python3 -m pip install --user --upgrade matplotlib

 

 

 

 

方法二 Macports

Python 2.7

sudo port install py27-pipsudo pip-2.7 install matplotlib

 

Python 3.6:

sudo port install py36-pipsudo pip-3.6 install matplotlib

 

 

 

 

 2.5 安裝包——scipy(pip)

python3 -m pip install scipy import scipy 

 

測試一下

import scipy 

 

 

 

2.6 安裝pandas

1. Anaconda:安裝pandas、Python和SciPy最簡單的方式是用Anaconda。Anaconda是關於Python數據分析和科學計算的分發包。


2. Miniconda
使用Anaconda會安裝一百多個依賴包,如果想靈活控制安裝的依賴包或帶寬有限,使用Miniconda是個不錯的選擇。
Conda是個包管理器,Anaconda就是建立在它的基礎上。Conda不只跨平台還與語言無關,與pip和virtualenv相結合的作用相似。
Miniconda允許先創建包含Python的安裝包,然后用conda安裝其他的依賴包。

 

3. Pypi
pandas可以通過pip安裝,但要安裝相關的依賴包。
[plain] view plain copy
pip install pandas

 

4. 包管理器
可以用linux的包管理器進行安裝,如
[plain] view plain copy
sudo apt-get install python-pandas 
zypper in python-pandas

 

5. 源碼安裝
從源碼安裝需要安裝最新的Cython,可用easy-install -U cython安裝。源碼位於http://github.com/pydata/pandas,安裝過程為

[plain] view plain copy
git clone git://github.com/pydata/pandas.git 
cd pandas 
python setup.py install

 

 

 

2.7 安裝TensorFlow(pip) 

#python2版本
pip install tensorflow

 

#python3版本
pip3 install tensorflow

 

 

安裝成功后,如果仍然報錯

Traceback (most recent call last):
File "MLCNN.py", line 10, in <module>
import tensorflow as tf
ModuleNotFoundError: No module named 'tensorflow'

 

 

 

解決方案1——卸載重裝tensorflow(未解決)

(pip重裝測試無效果)

$ pip uninstall tensorflow
$ pip3 uninstall tensorflow 

 

 

http://bbs.csdn.net/topics/392322815?list=lz   -csdn/Python與TensorFlow安裝遇到問題求助

http://blog.csdn.net/evaljy/article/details/70209957   -csdn/tensorflow在win上的安裝常見錯誤及正確安裝步驟(包含anaconda spyder)/報錯集合

 

 

解決方案2——用Anaconda來進行激活使用(未解決)

首先安裝Anaconda,安裝成功后,創建一個conda環境

 

conda create -n tensorflow pip python = 2.7
conda create -n tensorflow pip python = 3.6
#或python = 3.3等

 

激活環境

 

source activate tensorflow
# (targetDirectory)$   Your prompt should change

 

在環境中安裝Tensorflow

 

pip install --ignore-installed --upgrade \  https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.6.0-py2-none-any.whl

#TensorFlow for Python 2.7的純CPU版本

 

pip install --ignore-installed --upgrade \  https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.6.0-py3-none-any.whl

#Python 3.4,3.5或3.6

 

 

參考:

https://www.tensorflow.org/install/install_mac   -tensorflow官網

 

 

 

正確的安裝方法

⭐️http://blog.csdn.net/u012373815/article/details/73555460   -csdn/mac/linux 安裝tensorflow和安裝Anaconda

 

tensorflow拓展學習

http://www.tensorflownews.com/category/course/   -tensorflownews/tensorflownews/個人網站

 

 

 

參考:

✅http://www.cnblogs.com/tensorflownews/p/7298646.html   -cnblogs/在 Mac OS X 上安裝 TensorFlow

 

 

 

 

參考:

https://jingyan.baidu.com/article/fec7a1e5ec30341190b4e7e5.html   -Mac下如何安裝配置Homebrew

http://blog.csdn.net/ybuiipl/article/details/60875304   -Linux/numpy的下載與安裝教程——(解決No module named numpy問題)

https://www.cnblogs.com/klchang/p/4543032.html   -python和numpy的版本、安裝位置

https://www.zhihu.com/question/21731171   -安裝Numpy

http://blog.csdn.net/ciyiquan5963/article/details/77531932   -Mac/MAC 使用pycharm出現ImportError: No module named numpy 解決方法

http://rstevens.iteye.com/blog/1214143   -安裝python package到指定目錄

http://blog.csdn.net/techfield/article/details/52618130   -多版本Python共存時pip給指定版本的python安裝package的方法

https://www.jianshu.com/p/21bb9d06cf79   -[Mac] Python Numpy Scipy Matplotlib 快速安裝

⭐️http://blog.topspeedsnail.com/archives/704   -mac os x: Python 3 安裝(scipy,numpy,matplotlib. . .)

https://stackoverflow.com/questions/33888760/importerror-no-module-named-matplotlib   -ImportError: No module named matplotlib

http://blog.csdn.net/a595130080/article/details/55506237   - tensorflow

 

 

2018-03-0809:00:00

2018-03-0821:17:12

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM