先声明一下,我参考的安装文章在 [这里] 。(http://www.pyimagesearch.com/2016/12/05/macos-install-opencv-3-and-python-3-5/)
我的环境与教程的环境有一些差别,在这之前我安装了Anaconda和Pycharm,所以在安装的时候曾担心会遇到一些冲突的问题,后来想了一下,先不管他了,试试再说。现在我记录一下安装的过程,是边安装边记录的,我也不知道能不能安装成功。
由于之前系统已经安装过homebrew了,所以就跳过安装的步骤,Step #2: Install Homebrew,执行了一下
brew update
~/ brew update
Updated 2 taps (homebrew/core, homebrew/science).
==> New Formulae
akamai glpk metis redis@3.2 veclibfort
arpack goose octave scalapack
bash-snippets homebrew/science/clips openblas sccache
bento4 homebrew/science/flexbar qhull suite-sparse
ghc@8.0 maven@3.0 qrupdate transfig
==> Updated Formulae
afl-fuzz get-flash-videos libqalculate pyenv-virtualenv
afsctool getmail librdkafka pyinvoke
agda ghc librsvg pyqt
allure git-fresh libtiff ✔ qscintilla2
amazon-ecs-cli gitlab-ci-multi-runner libtorrent-rasterbar rclone
ammonite-repl gjs linkerd reattach-to-user-namespace
angular-cli gnatsd log4cpp recoverjpeg
apache-arrow gnome-recipes logstash redis
app-engine-go-64 gnu-chess lxc rethinkdb
arangodb gnupg macvim rocksdb
artifactory gnupg@1.4 makensis rom-tools
ascii gofabric8 mame rtags
assimp google-benchmark mariadb ruby-build
aws-sdk-cpp gradle memcached rust
bacula-fd grakn menhir sbt
bazel groonga meson scala
binutils gsoap metabase scalaenv
bmake gtk+3 metricbeat scalariform
btfs harfbuzz miller scw
cabal-install haskell-stack mingw-w64 s-libev
caddy haste-client mkvtoolnix sip
cargo-completion hdf5 ✔ mobile-shell sjk
catimg heroku monax skinny
chakra highlight mpc snakemake
checkstyle homebrew/science/alembic mpd snap-telemetry
chromedriver homebrew/science/ampl-mp mpdas softhsm
closure-stylesheets homebrew/science/bedops mpg123 sslyze
cmake homebrew/science/ceres-solver mpv stella
cockroach homebrew/science/cgns mspdebug supervisor
codec2 homebrew/science/cmor mypy suricata
conan homebrew/science/dynare mysql swiftplate
consul homebrew/science/gmsh mysql-cluster syncthing
convmv homebrew/science/htslib mysql-connector-c sysdig
convox homebrew/science/ipopt mysql-sandbox t1utils
corectl homebrew/science/libbigwig mysql@5.5 talloc
cromwell homebrew/science/littler mysql@5.6 tarsnap-gui
crowdin homebrew/science/mumps nano tcl-tk
cryptol homebrew/science/nextflow ncmpc tcpdump
cython homebrew/science/ome-common ncmpcpp tee-clc
dbt homebrew/science/ome-files netpbm telegraf
dbus homebrew/science/ome-xml nnn teleport
dcos-cli homebrew/science/root6 node terragrunt
dependency-check homebrew/science/vcftools node-build tfenv
dhall-json htmldoc node@4 tika
diff-so-fancy httpflow node@6 tippecanoe
diffoscope hydra nomad trafficserver
digdag hyperscan notmuch twoping
dmd imagemagick nsd typescript
docker-compose imagemagick@6 nspr unrar
docker-compose-completion influxdb nuxeo urh
dub influxdb@0.8 ola v8@3.15
duck ircii openrtsp vim
elasticsearch jags opensc vimpc
elasticsearch@2.4 jboss-forge openvdb vips
elixir jenkins orc voldemort
emscripten jenkins-lts orientdb vowpal-wabbit
encfs jfrog-cli-go osc webdis
etcd jhipster osm2pgsql webpack
etsh jmxtrans osquery whois
evince kibana osrm-backend wine
exploitdb kobalt oysttyer wiredtiger
fabio kompose packetbeat wireguard-tools
fibjs kops paket wireshark
filebeat kubernetes-cli parallel woboq_codebrowser
flake8 kubernetes-helm passenger wpscan
flow languagetool pgbadger xapian
fluent-bit launch4j pgcli xsv
folly lean-cli pioneer yarn
format-udf libfreenect ponyc yle-dl
fstar libgcrypt pre-commit you-get
fzf libhttpseverywhere presto youtube-dl
gdk-pixbuf libmpdclient protobuf-swift zabbix
gearman libphonenumber psqlodbc zsh-completions
geos libpst pulseaudio
~/ vi ~/.bash_profile
教程接下来是添加brew的安装路径,以便的命令行输入brew后系统能够找到它,同样,我之前已经安装过了,所以就查看了一下安装路径。已经添加好了。
~/ which brew
/usr/local/bin/brew
~/ echo $PATH
/Users/zz/anaconda/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
~/
接下来教程是安装Python3,这个我之前也安装好了,是装Anaconda的时候装的,并且系统上有好几个Python,在/usr/bin目录下的是osx系统自带的,且为python2.x的版本,我的目标是装python3.x和opencv,所以那个肯定就不能用了。
~/ which python3
/Users/zz/anaconda/bin/python3
~/
~/ which python
/Users/zz/anaconda/bin/python
~/
~/ ls /usr/bin/pyth*
/usr/bin/python /usr/bin/python2.6 /usr/bin/python2.7 /usr/bin/pythonw /usr/bin/pythonw2.7
/usr/bin/python-config /usr/bin/python2.6-config /usr/bin/python2.7-config /usr/bin/pythonw2.6
~/
在这一步,教程使用了brew 安装了python3,装在了/usr/local/bin/python3里面了。而具体我的本机的情况,python3的安装路径则为:
~/ which python3
/Users/zz/anaconda/bin/python3
~/
所以在后面配置的时候需要把教程中有关/usr/local/bin/python3的路径改成我的 /user/zz/anaconda/bin/python3 ,这是目前能够想到的。
继续。Step #4: Install Python virtual environments and NumPy 接下来是安装 virtual environments.
pip install virtualenv virtualenvwrapper
这个东西我的系统里确实没有,所以该实际的安装了。
~/ pip install virtualenv virtualenvwrapper
Collecting virtualenv
Downloading virtualenv-15.1.0-py2.py3-none-any.whl (1.8MB)
100% |████████████████████████████████| 1.8MB 132kB/s
Collecting virtualenvwrapper
Downloading virtualenvwrapper-4.7.2.tar.gz (90kB)
100% |████████████████████████████████| 92kB 73kB/s
Collecting virtualenv-clone (from virtualenvwrapper)
Downloading virtualenv-clone-0.2.6.tar.gz
Collecting stevedore (from virtualenvwrapper)
Downloading stevedore-1.25.0-py2.py3-none-any.whl
Collecting pbr!=2.1.0,>=2.0.0 (from stevedore->virtualenvwrapper)
Downloading pbr-3.1.1-py2.py3-none-any.whl (99kB)
100% |████████████████████████████████| 102kB 55kB/s
Requirement already satisfied: six>=1.9.0 in ./anaconda/lib/python3.6/site-packages (from stevedore->virtualenvwrapper)
Building wheels for collected packages: virtualenvwrapper, virtualenv-clone
Running setup.py bdist_wheel for virtualenvwrapper ... done
Stored in directory: /Users/zz/Library/Caches/pip/wheels/3e/7e/eb/31f2187dde819aa4f67ade0ac8401da47257f44c213f153ca2
Running setup.py bdist_wheel for virtualenv-clone ... done
Stored in directory: /Users/zz/Library/Caches/pip/wheels/24/51/ef/93120d304d240b4b6c2066454250a1626e04f73d34417b956d
Successfully built virtualenvwrapper virtualenv-clone
Installing collected packages: virtualenv, virtualenv-clone, pbr, stevedore, virtualenvwrapper
Successfully installed pbr-3.1.1 stevedore-1.25.0 virtualenv-15.1.0 virtualenv-clone-0.2.6 virtualenvwrapper-4.7.2
~/ ls /usr/local/bin/
2to3 exrmakepreview h5format_convert mdb_copy ppm2tiff tiff2pdf
2to3-3.6 exrmaketiled h5import mdb_dump pprof tiff2ps
VBoxAutostart exrmultipart h5jam mdb_load pydoc3 tiff2rgba
VBoxBalloonCtrl exrmultiview h5ls mdb_stat pydoc3.6 tiffcmp
VBoxBugReport exrstdattr h5mkgrp ocs python3 tiffcp
VBoxDTrace f2py h5perf_serial opencv_annotation python3-32 tiffcrop
VBoxHeadless fax2ps h5redeploy opencv_createsamples python3-config tiffdither
VBoxManage fax2tiff h5repack opencv_haartraining python3.6 tiffdump
VBoxVRDP gflags_completions.sh h5repart opencv_performance python3.6-32 tiffinfo
VirtualBox gif2h5 h5stat opencv_traincascade python3.6-config tiffmedian
brew h52gif h5unjam opencv_version python3.6m tiffset
cjpeg h5c++ h5watch opencv_visualisation python3.6m-config tiffsplit
cscope h5cc idle3 pal2rgb pyvenv vbox-img
ctags h5clear idle3.6 pip3 pyvenv-3.6 vboxwebsrv
djpeg h5copy jpegtran pip3.6 raw2tiff wrjpgcom
easy_install-3.6 h5debug leveldbutil png-fix-itxt rdjpgcom
exrenvmap h5diff libpng-config pngfix sandbox-pod
exrheader h5dump libpng16-config pod tiff2bw
~/ virtualenv_prompt_info
还算顺利,直接就安装完了。
然后接下来,教程说
# Virtualenv/VirtualenvWrapper
source /usr/local/bin/virtualenvwrapper.sh
但是我看了一下,在我本地/usr/local/bin目录下根本就没有virtualenvwrapper.sh这个文件。慌了2秒钟,企图使用直接拼写看看系统能不能自动补全,结果只出来一个virtualenv_prompt_ifo,没有想要的virtualenvwrapper.sh,用find查找出来一堆Permission denied。又进了几个目录看了一下,也还是没有。
~/ virtualenv_prompt_info
~/ find / -name virtualenvwrapper.sh
find: /.DocumentRevisions-V100: Permission denied
find: /.fseventsd: Permission denied
find: /.Spotlight-V100: Permission denied
find: /.Trashes: Permission denied
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
find: /Library/Application Support/Apple/ParentalControls/Users: Permission denied
find: /Library/Application Support/ApplePushService: Permission denied
find: /Library/Application Support/com.apple.TCC: Permission denied
find: /Library/Caches/com.apple.iconservices.store: Permission denied
find: /Library/Caches/com.apple.Spotlight/schema.501.plist: Permission denied
find: /Library/Caches/com.apple.Spotlight/schema.89.plist: Permission denied
find: /Library/Caches/com.apple.Spotlight: Permission denied
find: /private/etc/cups/certs: Permission denied
find: /private/var/agentx: Permission denied
find: /private/var/at/tabs: Permission denied
find: /private/var/at/tmp: Permission denied
find: /private/var/audit: Permission denied
find: /private/var/backups: Permission denied
find: /private/var/db/caches/opendirectory: Permission denied
find: /private/var/db/ConfigurationProfiles/Setup: Permission denied
find: /private/var/db/ConfigurationProfiles/Store: Permission denied
find: /private/var/db/dhcpclient: Permission denied
find: /private/var/db/dslocal/nodes/Default: Permission denied
find: /private/var/db/geod: Permission denied
find: /private/var/db/locationd: Permission denied
find: /private/var/db/lockdown: Permission denied
find: /private/var/db/nsurlsessiond: Permission denied
find: /private/var/db/securityagent: Permission denied
find: /private/var/db/Spotlight: Permission denied
find: /private/var/db/sudo: Permission denied
find: /private/var/db/TokenCache: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/0/com.apple.revisiond.temp: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/0/com.apple.Spotlight: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/C: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n000003000000r/T: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n000003800000t/C: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n000006w00001q/C: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n000006w00001q/T: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n0000084000021/C: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n0000084000021/T: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000b400002s/C: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000b400002s/T: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000bh00002w/C: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000bh00002w/T: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000c4000031/C: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000c4000031/T: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000s0000068/C: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000s0000068/T: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000s800006_/C: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000s800006_/T: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000sm00006d/C: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000sm00006d/T: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000t800006k/T: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000th00006m/C: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000th00006m/T: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000tm00006n/T: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000vr00006y/C: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000vr00006y/T: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000xc00007b/C: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000xc00007b/T: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000y000007h/C: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000y000007h/T: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000y400007j/T: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000y800007k/T: Permission denied
find: /private/var/folders/zz/zyxvpxvq6csfxvn_n00000yc00007l/T: Permission denied
find: /private/var/jabberd: Permission denied
find: /private/var/lib/postfix: Permission denied
find: /private/var/log/com.apple.revisiond: Permission denied
find: /private/var/log/watchdogd/log: Permission denied
find: /private/var/log/watchdogd: Permission denied
find: /private/var/root: Permission denied
find: /private/var/run/mds: Permission denied
find: /private/var/spool/cups: Permission denied
find: /private/var/spool/fax: Permission denied
find: /private/var/spool/mqueue: Permission denied
find: /private/var/spool/postfix/active: Permission denied
find: /private/var/spool/postfix/bounce: Permission denied
find: /private/var/spool/postfix/corrupt: Permission denied
find: /private/var/spool/postfix/defer: Permission denied
find: /private/var/spool/postfix/deferred: Permission denied
find: /private/var/spool/postfix/flush: Permission denied
find: /private/var/spool/postfix/hold: Permission denied
find: /private/var/spool/postfix/incoming: Permission denied
find: /private/var/spool/postfix/maildrop: Permission denied
find: /private/var/spool/postfix/private: Permission denied
find: /private/var/spool/postfix/public: Permission denied
find: /private/var/spool/postfix/saved: Permission denied
find: /private/var/spool/postfix/trace: Permission denied
find: /System/Library/Caches/com.apple.coresymbolicationd: Permission denied
find: /System/Library/DirectoryServices/DefaultLocalDB/Default: Permission denied
find: /System/Library/User Template: Permission denied
/Users/zz/anaconda/bin/virtualenvwrapper.sh
find: /usr/sbin/authserver: Permission denied
find: /Volumes/PyCharm/.Trashes: Permission denied
~/ ls /Library/Frameworks/Python.framework/Versions/3.6/bin/
2to3 idle3 pip3.6 python3 python3.6 python3.6m pyvenv-3.6
2to3-3.6 idle3.6 pydoc3 python3-32 python3.6-32 python3.6m-config
easy_install-3.6 pip3 pydoc3.6 python3-config python3.6-config pyvenv
~/ ls /Library/Frameworks/Python.framework/Versions/3.6/bin/ -al
ls: -al: No such file or directory
/Library/Frameworks/Python.framework/Versions/3.6/bin/:
2to3 idle3 pip3.6 python3 python3.6 python3.6m pyvenv-3.6
2to3-3.6 idle3.6 pydoc3 python3-32 python3.6-32 python3.6m-config
easy_install-3.6 pip3 pydoc3.6 python3-config python3.6-config pyvenv
~/ ls -al /Library/Frameworks/Python.framework/Versions/3.6/bin/
total 272
drwxrwxr-x 21 root admin 714 Feb 9 08:09 .
drwxrwxr-x 10 root admin 340 Feb 9 08:09 ..
lrwxr-xr-x 1 root admin 8 Feb 9 08:09 2to3 -> 2to3-3.6
-rwxrwxr-x 1 root admin 140 Dec 23 2016 2to3-3.6
-rwxrwxr-x 1 root admin 281 Feb 9 08:09 easy_install-3.6
lrwxr-xr-x 1 root admin 7 Feb 9 08:09 idle3 -> idle3.6
-rwxrwxr-x 1 root admin 138 Dec 23 2016 idle3.6
-rwxrwxr-x 1 root admin 253 Feb 9 08:09 pip3
-rwxrwxr-x 1 root admin 253 Feb 9 08:09 pip3.6
lrwxr-xr-x 1 root admin 8 Feb 9 08:09 pydoc3 -> pydoc3.6
-rwxrwxr-x 1 root admin 123 Dec 23 2016 pydoc3.6
lrwxr-xr-x 1 root admin 9 Feb 9 08:09 python3 -> python3.6
lrwxr-xr-x 1 root admin 12 Feb 9 08:09 python3-32 -> python3.6-32
lrwxr-xr-x 1 root admin 16 Feb 9 08:09 python3-config -> python3.6-config
-rwxrwxr-x 2 root admin 25920 Dec 23 2016 python3.6
-rwxrwxr-x 1 root admin 13568 Dec 23 2016 python3.6-32
lrwxr-xr-x 1 root admin 17 Feb 9 08:09 python3.6-config -> python3.6m-config
-rwxrwxr-x 2 root admin 25920 Dec 23 2016 python3.6m
-rwxrwxr-x 1 root admin 2081 Dec 23 2016 python3.6m-config
lrwxr-xr-x 1 root admin 10 Feb 9 08:09 pyvenv -> pyvenv-3.6
-rwxrwxr-x 1 root admin 480 Dec 23 2016 pyvenv-3.6
~/ ls /usr/local/bin
2to3 exrmakepreview h5format_convert mdb_copy ppm2tiff tiff2pdf
2to3-3.6 exrmaketiled h5import mdb_dump pprof tiff2ps
VBoxAutostart exrmultipart h5jam mdb_load pydoc3 tiff2rgba
VBoxBalloonCtrl exrmultiview h5ls mdb_stat pydoc3.6 tiffcmp
VBoxBugReport exrstdattr h5mkgrp ocs python3 tiffcp
VBoxDTrace f2py h5perf_serial opencv_annotation python3-32 tiffcrop
VBoxHeadless fax2ps h5redeploy opencv_createsamples python3-config tiffdither
VBoxManage fax2tiff h5repack opencv_haartraining python3.6 tiffdump
VBoxVRDP gflags_completions.sh h5repart opencv_performance python3.6-32 tiffinfo
VirtualBox gif2h5 h5stat opencv_traincascade python3.6-config tiffmedian
brew h52gif h5unjam opencv_version python3.6m tiffset
cjpeg h5c++ h5watch opencv_visualisation python3.6m-config tiffsplit
cscope h5cc idle3 pal2rgb pyvenv vbox-img
ctags h5clear idle3.6 pip3 pyvenv-3.6 vboxwebsrv
djpeg h5copy jpegtran pip3.6 raw2tiff wrjpgcom
easy_install-3.6 h5debug leveldbutil png-fix-itxt rdjpgcom
exrenvmap h5diff libpng-config pngfix sandbox-pod
exrheader h5dump libpng16-config pod tiff2bw
这时想起来,还有个which,赶紧试试。终于找到了,原来它就在/user/zz/anaconda/bin/里面,看来都安装到anaconda的目录了。按照教程也把它的路径添加到~/.bash_profile,以便在以后打开终端的时候自动加载它。同时,先用source更新一下本终端。
~/ which virtualenvwrapper.sh
/Users/zz/anaconda/bin/virtualenvwrapper.sh
~/ vi ~/.bash_profile
~/ source ~/.bash_profile
virtualenvwrapper.user_scripts creating /Users/zz/.virtualenvs/premkproject
virtualenvwrapper.user_scripts creating /Users/zz/.virtualenvs/postmkproject
virtualenvwrapper.user_scripts creating /Users/zz/.virtualenvs/initialize
virtualenvwrapper.user_scripts creating /Users/zz/.virtualenvs/premkvirtualenv
virtualenvwrapper.user_scripts creating /Users/zz/.virtualenvs/postmkvirtualenv
virtualenvwrapper.user_scripts creating /Users/zz/.virtualenvs/prermvirtualenv
virtualenvwrapper.user_scripts creating /Users/zz/.virtualenvs/postrmvirtualenv
virtualenvwrapper.user_scripts creating /Users/zz/.virtualenvs/predeactivate
virtualenvwrapper.user_scripts creating /Users/zz/.virtualenvs/postdeactivate
virtualenvwrapper.user_scripts creating /Users/zz/.virtualenvs/preactivate
virtualenvwrapper.user_scripts creating /Users/zz/.virtualenvs/postactivate
virtualenvwrapper.user_scripts creating /Users/zz/.virtualenvs/get_env_details
~/ ls .virtualenvs
get_env_details postactivate postmkproject postrmvirtualenv predeactivate premkvirtualenv
initialize postdeactivate postmkvirtualenv preactivate premkproject prermvirtualenv
~/ ls -al .virtualenvs
total 96
drwxr-xr-x 14 zz staff 476 Jul 29 16:53 .
drwxr-xr-x+ 47 zz staff 1598 Jul 29 16:53 ..
-rwxr-xr-x 1 zz staff 134 Jul 29 16:53 get_env_details
-rw-r--r-- 1 zz staff 95 Jul 29 16:53 initialize
-rw-r--r-- 1 zz staff 72 Jul 29 16:53 postactivate
-rw-r--r-- 1 zz staff 74 Jul 29 16:53 postdeactivate
-rwxr-xr-x 1 zz staff 65 Jul 29 16:53 postmkproject
-rw-r--r-- 1 zz staff 72 Jul 29 16:53 postmkvirtualenv
-rwxr-xr-x 1 zz staff 109 Jul 29 16:53 postrmvirtualenv
-rwxr-xr-x 1 zz staff 98 Jul 29 16:53 preactivate
-rw-r--r-- 1 zz staff 75 Jul 29 16:53 predeactivate
-rwxr-xr-x 1 zz staff 90 Jul 29 16:53 premkproject
-rwxr-xr-x 1 zz staff 129 Jul 29 16:53 premkvirtualenv
-rwxr-xr-x 1 zz staff 110 Jul 29 16:53 prermvirtualenv
~/
接着跟着教程走。
Create your Python 3 virtual environment
$ mkvirtualenv cv -p python3
我本地执行结果:
~/ $ mkvirtualenv cv -p python3
zsh: command not found: $
~/ mkvirtualenv cv -p python3
zsh: command not found: mkvirtualenv
~/ brew install mkvirtualenv
Updating Homebrew...
Error: No available formula with the name "mkvirtualenv"
==> Searching for a previously deleted formula...
Warning: homebrew/core is shallow clone. To get complete history run:
git -C "$(brew --repo homebrew/core)" fetch --unshallow
Error: No previously deleted formula found.
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
==> Searching taps...
Error: No formulae found in taps.
很明显,又一次装B失败。系统没有找到mkvirtualenv,由于想都没想就用brew 尝试安装它,直到提示安装失败才回过味来,是不是它是在刚才安装 virtualenv virtualenvwrapper 时装上的东西,但是为什么提示找不到呢,赶紧又source ~/.bash_profile,终于可以执行了。回想了一下为什么要source一下才行,不是应该系统自动初始化的吗?难道是我这几天没有关机,导致没有初始化console的关系?先不管了。本以为会大功告成,结果出来了错误。
~/ source ~/.bash_profile
~/ mkvirtualenv cv -p python3
Running virtualenv with interpreter /Users/zz/anaconda/bin/python3
Using base prefix '/Users/zz/anaconda'
New python executable in /Users/zz/.virtualenvs/cv/bin/python3
Also creating executable in /Users/zz/.virtualenvs/cv/bin/python
dyld: Library not loaded: @rpath/libpython3.6m.dylib
Referenced from: /Users/zz/.virtualenvs/cv/bin/python3
Reason: image not found
ERROR: The executable /Users/zz/.virtualenvs/cv/bin/python3 is not functioning
ERROR: It thinks sys.prefix is '/Users/zz/.virtualenvs' (should be '/Users/zz/.virtualenvs/cv')
ERROR: virtualenv is not compatible with this system or executable
~/
说实话,直到此时,我才查了一下:
virtualenv 是一个可以在同一计算机中隔离多个python版本的工具。有时,两个不同的项目可能需要不同版本的python,如 python2.6.6 / python3.0 ,但是如果都装到一起,经常会导致问题。所以需要一个工具能够将这两种或几种不同版本的环境隔离开来,需要哪个版本就切换到哪个版本做为默认版本。virtualenv 既是满足这个需求的工具。它能够用于创建独立的Python环境,多个Python相互独立,互不影响,能够:
在没有权限的情况下安装新套件
不同应用可以使用不同的套件版本
套件升级不影响其他应用
作者:乾九二
链接:http://www.jianshu.com/p/44ab75fbaef2
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。