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.mzph.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…