mac安裝python虛擬環境_詳解Mac配置虛擬環境Virtualenv,安裝Python科學計算包

最近正在自學Python做科學計算,當然在很多書籍和公開課里最先做的就是安裝Numpy, Scipy, Matplotlib等包,不過每次安裝單獨的包時,都會有各種問題導致安裝失敗或者調用失敗。

比如,

遇到 Exception 和 Error:

明明已經提示 Sklearn 安裝成功,但是在調用時卻顯示:

ImportError: No module named sklearn

還有用 Numpy 的時候:

ValueError: numpy.dtype has the wrong size, try recompiling

看到大家說用虛擬環境比較好,我就也自己安了一個,果然在 virtualenv 上安裝各種包都很順利,用起來也非常順暢,沒再出現什么問題。

virtualenv 可以用來建立一個專屬于項目的python環境,保持一個干凈的環境。只需要通過命令創建一個虛擬環境,不用的時候通過命令退出,刪除。

下面介紹一下安裝方法:安裝 virtualenv

安裝 virtualenvwrapper

安裝 Numpy,Scipy,Matplotlib 等

安裝 virtualenv$?sudo?pip?install?virtualenv

然后建立一個測試目錄:$?mkdir?testvirtual

$?cd?testvirtual

就可以成功創建一個虛擬環境 env1:$?virtualenv?env1

安裝 virtualenvwrapper

Virtaulenvwrapper是virtualenv的擴展包,可以更方便地新增,刪除,復制,切換虛擬環境。

運行下面命令就安裝成功了,默認安裝在 /usr/local/bin下面:$?sudo?easy_install?virtualenvwrapper

接下來創建一個文件夾,用來存放所有的虛擬環境:$?mkdir?~/workspaces

$?cd?~/workspaces

但是在使用virtualenvwrapper之前,要運行virtualenvwrapper.sh文件,需要設置環境變量,也就是把下面兩行代碼寫進 ~/.bashrc里,但是我的電腦里并沒有~/.bashrc,查了一下解決辦法,比如自己創建個bashrc寫進去兩行代碼,也不管用。

export WORKON_HOME=~/workspaces

source /usr/bin/virtualenvwrapper.sh

最后的辦法就是,直接在命令行寫,成功了:$?export?WORKON_HOME=~/workspaces

$?source?/usr/local/bin/virtualenvwrapper.sh

接下來,創建一個或者多個虛擬環境 env1,env2:$?mkvirtualenv?env1

成功后,當前路徑前面就會有 (env1)$?mkvirtualenv?env2

下面是一些基本操作命令列出虛擬環境:$?lsvirtualenv?-b

env1

env2切換虛擬環境:$?workon?env1查看環境里安裝了哪些包:$?lssitepackages進入當前環境:$?cdvirtualenv進入當前環境的site-packages:$?cdsitepackages

$?cdsitepackages?pip復制虛擬環境:$?cpvirtualenv?env1?env3

Copying?env1?as?env3...退出虛擬環境:$?deactivate刪除虛擬環境:$?rmvirtualenv?env2

Removing?env2...

安裝 Numpy,Scipy,Matplotlib 等

接下來安裝Python的各種包,就比較順暢了,比如安在env1上:$?workon?env1

安裝numpy

pip install numpy

安裝scipy

$ pip install scipy

安裝matplotlib

$ pip install matplotlib

安裝ipython

$ pip install ipython[all]

安裝pandas

$ pip install pandas

安裝Statsmodel

$ pip install statsmodel

安裝scikit-learn

$ pip install scikit-learn

按照順序全部安裝成功,后續就可以在虛擬環境上做分析了。

以后每次進入虛擬環境就執行如下代碼即可,

不過因為我的環境變量沒有寫進bashrc里,所以都要多執行兩行:$?cd?~/workspaces

$?export?WORKON_HOME=~/workspaces

$?source?/usr/local/bin/virtualenvwrapper.sh

$?workon?env1

退出虛擬環境就用$?deactivate

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/394364.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394364.shtml
英文地址,請注明出處:http://en.pswp.cn/news/394364.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

破解系統設計訪談:Twitter軟件工程師的提示

by Zhia Hwa Chong志華化 破解系統設計訪談:Twitter軟件工程師的提示 (Crack the System Design interview: tips from a Twitter software engineer) I recently wrote about how I landed offers from multiple top-tier tech companies. During my interview pr…

leetcode474. 一和零(動態規劃)

在計算機界中,我們總是追求用有限的資源獲取最大的收益。 現在,假設你分別支配著 m 個 0 和 n 個 1。另外,還有一個僅包含 0 和 1 字符串的數組。 你的任務是使用給定的 m 個 0 和 n 個 1 ,找到能拼出存在于數組中的字符串的最大…

jQuery對象與DOM對象的相互轉換

一、檢測方式上的區別 檢測DOM對象: if (Object.nodeType) 檢測jQery對象: if (Object.jquery) 二、轉換方式 jQuery對象轉DOM對象: var DOMObject jQueryObject.get([index]); // 或者 var DOMObject jQueryObject[index]; DOM對象轉jQuer…

ProcessExplore 最新版

http://files.cnblogs.com/files/zhangdongsheng/ProcessExplorer.zip轉載于:https://www.cnblogs.com/zhangdongsheng/p/6195743.html

javascript對象包含哪些要素_讓人迷糊的JavaScript對象(Object一)

對于很多初學的小伙伴聽到JavaScript內置對象、BOM、DOM、WEB API等關鍵詞基本上都是迷糊,不是很明白他們之間的關系,以及他們是如果建立聯系的。雖然我們現在小伙伴在學VUE,React等框架能簡化我們的操作,但是遇到一些基礎的問題還…

被吐嘈的NodeJS的異常處理

被吐嘈的NodeJS的異常處理 許多人都有這樣一種映像,NodeJS比較快; 但是因為其是單線程,所以它不穩定,有點不安全,不適合處理復雜業務; 它比較適合對并發要求比較高,而且簡單的業務場景。 在Expr…

javascript關鍵字_讓我們揭開JavaScript的“ new”關鍵字的神秘面紗

javascript關鍵字by Cynthia Lee辛西婭李(Cynthia Lee) 讓我們揭開JavaScript的“ new”關鍵字的神秘面紗 (Let’s demystify JavaScript’s ‘new’ keyword) Over the weekend, I completed Will Sentance’s JavaScript: The Hard Parts. It might not sound like the most…

查看 rabbitmq 啟動websocket 提示404_RabbitMQ在windows下安裝(筆記)

先保證Java開發環境一切正常,【jdk,maven】,然后下載兩個文件,1,下載OTPhttps://www.rabbitmq.com/download.html 下載地址下載RabbitMQ Downloading and Installing RabbitMQ:地址安裝沒有別的操作,一直下一步就好;2&…

[Leetcode] Longest Valid Parentheses

找出字串裡最長的合法括號組 簡單說&#xff0c;一樣stack搜尋合法parenth&#xff0c;把不合法的 ( & ) index 紀錄下來&#xff0c;最後算index間的差值取最大就是最長的 public class Solution{/// <summary>/// 把不合法的( )的index記下來&#xff0c;取最長的差…

leetcode35. 搜索插入位置(二分搜索)

給定一個排序數組和一個目標值&#xff0c;在數組中找到目標值&#xff0c;并返回其索引。如果目標值不存在于數組中&#xff0c;返回它將會被按順序插入的位置。 你可以假設數組中無重復元素。 示例 1: 輸入: [1,3,5,6], 5 輸出: 2 代碼 class Solution {public int sear…

[deviceone開發]-do_Album的簡單示例

一、簡介do_Album用來打開手機系統提供的相冊&#xff0c;能選擇一張或多張圖片返回給開發者&#xff0c;通常相冊的圖片比較大&#xff0c;要經過縮放。有的時候用戶也需要把別的地方獲取到到圖片收藏到系統相冊。這個示例簡單展示這個組件的2個基本功能。二、效果圖三、相關下…

公辦低分二本_這六所公辦二本高校的計算機類相關專業值得低分段考生選擇

邯鄲學院——計算機科學與技術近年來&#xff0c;邯鄲學院著力強化“以本為本”理念,堅持“學生中心”“產出導向”原則&#xff0c;加強學科專業建設&#xff0c;獲批國家級特色專業1個&#xff0c;省級重點發展學科3個&#xff0c;省級一流專業7個&#xff0c;英語等3個專業入…

用戶體驗改善案例_用戶體驗案例研究:建立更好的體驗(重新設計“和平航空”網站)...

用戶體驗改善案例by Peace Ojemeh (Perrie)由Peace Ojemeh(Perrie) 用戶體驗案例研究&#xff1a;建立更好的體驗(重新設計“和平航空”網站) (A UX case study: Building a better experience (Re-designing the Air Peace Airline website)) Traveling by air is always an …

[轉]FFMPEG調節音頻的音量大小,混音

鏈接&#xff1a;https://blog.csdn.net/nil_lu/article/details/52078488 轉載于:https://www.cnblogs.com/zifeiy/p/10675734.html

局域網即時通訊軟件_無線局域網中,安卓手機和電腦的資源如何實現互傳互訪?...

安卓手機和電腦之間的資源共享&#xff0c;可實現的方案有很多&#xff0c;例如&#xff1a;方案一是各種官方或第三方出品的“XX手機助手”軟件。優點是直連的傳輸速率最高&#xff1b;缺點一是手機和電腦必須連在一起&#xff0c;相當不方便&#xff0c;缺點二是萬一中途發生…

leetcode516. 最長回文子序列(動態規劃)

***給定一個字符串 s &#xff0c;找到其中最長的回文子序列&#xff0c;并返回該序列的長度。***可以假設 s 的最大長度為 1000 。 示例 1: 輸入: “bbbab” 輸出: 4 一個可能的最長回文子序列為 “bbbb”。 解題思路 數組含義&#xff1a;dp[i][j]子串&#xff08;i&#…

Ubuntu 14.04 FTP服務器--vsftpd的安裝和配置

更新源列表 打開"終端窗口"&#xff0c;輸入"sudo apt-get update"-->回車-->"輸入當前登錄用戶的管理員密碼"-->回車,就可以了。如果不運行該命令&#xff0c;直接安裝vsftpd,會出現"有 幾個軟件包無法下載&#xff0c;您可以運…

校驗電話號碼 手機號碼正則表達式

2019獨角獸企業重金招聘Python工程師標準>>> 電話號碼 手機號碼 等準確詳細 正則表達式電話號碼正則表達式 &#xff08;支持手機號碼&#xff0c;3-4位區號&#xff0c;7-8位直播號碼&#xff0c;1&#xff0d;4位分機號&#xff09; ((\d{11})|^((\d{7,8})|(\d{4}…

期刊投稿狀態_SCI投稿全過程解析及拒稿后處理對策

之前給大家介紹了如果使用人工智能來提高SCI寫作效率的神器&#xff0c;相信大家對SCI寫作已經很有信心了。但有些小伙伴后臺說對投稿過程很沒有概念&#xff0c;不同期刊不同狀態。那么今天我們就對SCI投稿過程、投稿狀態做一個總結和解析以及拒稿后處理對策及接受后期相關問答…

cake php_如何(以及為什么)在Swinject中使用Cake Pattern

cake phpby Peter-John Welcome由Peter-John Welcome 如何(以及為什么)在Swinject中使用Cake Pattern (How (and why) to use the Cake Pattern with Swinject) In my previous article, I showed how we can use the Cake Pattern to do dependency injection without any li…