关于搭建虚拟环境的一系列问题(仅供参考)

本文分享了在Ubuntu环境下配置Anaconda与Python环境的经验,包括解决Anaconda与系统Python冲突、虚拟环境内存不足、Anaconda中安装pyspark模块及Pycharm运行程序报错等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看到有同学用Anaconda环境来做实验,我自己也搭了一个。使用jupyter notebook 确实比在终端直接操作方便。但是很头疼的一点就是有可能会出现Anaconda自带的Python跟原来的Python发生冲突,各种百度、Google搜了好几天才给解决。还有就是最新版的Python 3.8.2也可能有些bug没被修复,导致Pycharm无论执行任何程序都会报一个错误,这可能就是新版软件的一些缺陷吧,用的人少,问题还没被解决。不过慢慢来,总归还是有办法的。在这里总结一下,大家遇到了也好有个参考,如果有新的解决方法也可以分享一下。一根筷子你掰得断,一把筷子你不好掰呀!粗鄙之人,不吝赐教。

首先说一下我至今遇到的一些问题吧:

1、虚拟环境内存不足

我原来的实验环境是在虚拟机里装的Ubuntu 16.04,不过在安装的时候之给它分配了20G的内存,在搭了一些环境之后内存严重不足,明显感觉卡顿。于是就想着扩容,用过虚拟机的都知道可以给虚拟环境调节内存,但是调节的只是它的最大容量,内部容量并没有成功扩展。百度、Google的扩容办法非常麻烦,我到现在也还没解决,所以就生气直接重新装了一个。这里给出我的虚拟环境的一些配置。电脑配置好的话可以多给点配置。

建议:硬盘要给够(40G吧)

           网络适配器桥接模式(网速比较快)

           强烈推荐虚拟机,不建议双系统,我最开始用双系统因为显卡的问题导致Ubuntu出现了很多毛病。而且还会有其他还多问题。

2、安装Anaconda后导致Python冲突

      Anaconda安装的时候会自动附带一个Python,会与Ubuntu自带的Python发生冲突,它会默认把系统的Python覆盖掉,在终端中直接调用“python”命令的话默认执行的是Anaconda的Python。因为pyspark 是基于系统自带的Python版本的,使用起来可能会出现一些问题。

解决方法如下:修改配置文件,指定“python”命令对应的Python版本。

在家目录(~)下调用vim ~/.bashrc 命令修改.bashrc文件,然后在文件末尾加上下面三or四行代码:

①指定Ubuntu中自带的Python:

alias python = “/usr/bin/python3.8”

②指定Anaconda附带的Python:

alias python-anaconda = “home/hadoop/anaconda3/bin/python3.7”

③指定Ubuntu中自带的pip:

alias pip = “/usr/bin/pip3”

 

④指定Anaconda附带的pip:

alias pip-anaconda = “home/hadoop/anaconda3/bin/pip3”

这行我没加,因为我加了之后还是不能使用pip-anaconda命令在Anaconda中安装模块,解决方法见问题3。

 

每个人的Python版本不一样,可以去目录里用ls命令看一下。

 

配置完之后使用source ~/.bashrc 使配置文件生效。

之后在终端中调用”python”命令和”python-anaconda”命令调用的是不同的Python版本。

如图:

经过以上步骤就可以把两个Python版本区分开了。

3、在Anaconda中安装pyspark模块

     上面第二个问题虽然可以解决Python版本调用的问题,但是使用pip命令调用的是Ubuntu自带的pip命令。并不能在Anaconda中安装需要的模块。因为我们需要pyspark模块,但是Anaconda中好像没有附带pyspark模块,所以我们可以使用”conda install pyspark”安装pyspark模块,安装完之后就可以使用在jupyter notebook中导入pyspark模块了。

4、Pycharm中运行程序报错(任何程序,输出Hello World也报错)

       默认情况下我们在Pycharm中创建项目的时候是这样的(使用的是Ubuntu中自带的Python版本):

但是我使用的是Ubuntu 20.04,它自带的Python版本是Python 3.8.2,这个版本打包执行文件的时候好像会出错(TypeError:an integer is required(got type bytes))。例如:

我连这个模块都导入不了,还怎么玩。心态崩了。又是查了很久,但是到现在也还没解决。所以最后突发奇想,Anacond中附带的Python版本是Python 3.7。那我能不能在Pycharm中使用Anaconda 里附带的Python版本?于是一番操作:

于是就可以运行了呗:

这个问题算是被“伪解决”了,不过Pycharm终于算是可以用了。不知道Python 3.8什么毛病。不过大家如果不用Ubuntu 20.04应该不会遇到这个问题,因为其他版本的Ubuntu自带的应该不是Python 3.8版本,Pychrm应该可以直接用。

问题暂时就这些,这几天遇到这么些问题,我真的很无语,很难受,很烦。中间难到想哭,一坐就是一晌,一坐又是一晌,我甚至在想我真的适合这个行业吗?怎么这么菜呀!!!但是过后又一想,做什么不会遇到问题,怕遇到bug就不做程序员不就好了,怕学不会就别学呗。但是最终我们还是要从事一门行业的,就算在家种地也会有很多麻烦,种地,浇地,打药,撒肥料儿,收麦收苞谷出花生割豆儿(播种、浇水、除虫、施肥、丰收)。想要成功总归还是要坚持的,三天打渔两天晒网总不会有太大进步。没人能代替自己,虽说人生无处不相逢,但是没有任何人可以时刻陪伴着我们,人生没有Crtl + C、V,遇见问题了就努力去解决吧,不会了可以商量,但最终还是要自己解决的。(又是碗鸡汤)就像搭建环境,有人用虚拟机,有人用双系统,有人用云服务器……

大家遇到新的问题可以提出来一起讨论,前人栽树后人乘凉,我们的问题会越来越少的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值