TensorFlow虚拟环境安装/pip install 与 conda install区别/jupyter kernel的添加与删除

起因

我自己的TensorFlow是gpu2.4版本的,用lstm模型训练几千个样本,每个epoch要90多秒,太慢。
看了下朋友的,她的只要加上一句

os.environ['CUDA_VISIBLE_DEVICES'] = '0'

这个就可以gpu加速,但我的不行。一看,她的是TensorFlow-gpu2.6版本,于是我也搞了个tf2.6虚拟环境,用来装2.6版本的gpu TensorFlow。
创建虚拟环境的过程想必大家都很熟

conda create env --name tf2.6#(base环境)
activate tf2.6#(base环境)
pip install tensorflow-gpu==2.6.0#(tf2.6环境)
#将新建的tf2.6环境加入到jupyter的kernel里
pip install ipykernel#(tf2.6环境)
python -m ipykernel install --name=tf-kernel(这个名字与虚拟环境的名字可以不一样)#(tf2.6环境)
#删除无用的kernel
jupyter kernelspec list#(base环境)
jupyter kernelspec remove kernel_name#(base环境)
#删除无用的虚拟环境
conda env list
conda env remove --name env_name

一口气把相关会用到的命令全写上了,有需要直接复制。
但是我创建完发现anaconda/env/tf2.6只有一个conda-meta文件夹,而且这个文件夹里只有一个history文件。
所以哪些安装的包(pip install tensorflow)去哪了?
先搁下这个疑问,我在tf2.6中进入python环境import tensorflow
又是一连串的报错
鬼使神差地,我看到报错提醒里有pip 版本过低的提醒,于是升级了pip

pip install --upgrade pip

但还是该报错的报错,anaconda/env/tf2.6下仍然只有一个文件

虚拟环境中通过pip install安装的包究竟到哪去了?

通过不断地尝试和搜索,发现conda create env --name env_name时如果不指定python,那么pip install的包会放在
C:\Users\username\AppData\Roaming\Python\Python38\site-packages这个文件夹里,因为conda create env --name env_name创建的虚拟环境中的python是系统的python。
conda create env --name env_name python=3.8,如果后面指定一个python,则这个虚拟环境中的python是conda新安装的,通过pip install安装的包也会在Anaconda3\envs\tf\Lib\site-packages这个文件夹下。

参考:pip install 和conda install的区别
(这个发布有问题,每次编辑的时候这个链接都能看到,但是发布完预览这个网页链接就变成了文字,我真的服。)
(参考博客链接:pip install和conda install区别
点不开的话直接复制这个网址https://www.zhihu.com/question/395145313/answer/2449421755

!值得注意的是,有时候报错的提醒里有叫你加上install的加上–user
以一个简单的轻量级的不依赖其他库的包simple-calc为例。
如果在虚拟环境中conda install simple-calc,那么这个包会放在Anaconda3\pkgs。
如果在虚拟环境中pip install simple-calc,那么这个包会放在Anaconda3\envs\tf\Lib\site-packages。
如果在虚拟环境中pip install --user simple-calc,那么这个包会放在C:\Users\username\AppData\Roaming\Python\Python38\site-packages。
当你pip list时,那些包有些是在Anaconda3\envs\tf\Lib\site-packages,有些是在C:\Users\username\AppData\Roaming\Python\Python38\site-packages,所以有时候会看见某个库有两个版本同时存在,这样也会造成很多包的不兼容。
实在是debug de烦了,我直接把AppData\Roaming\Python\Python38\site-packages这个目录下的包全都删了,然后删除那些有内在版本冲突的虚拟环境,新建了一个tf环境,安装的时候只用pip install,绝对不加–user。

tf-gpu安装问题

我当时一股脑去下载tensorflow-gpu2.6版本,完全忘记了tensorflow-gpu对cuda和cudnn版本的要求。
因为我之前是下载过tensorflow-gpu2.4版本的,因此电脑离的cuda和cudnn版本只能支持tensorflow-gpu2.4,就算安装了2.6版本也用不了。
经过这么一番折腾,我不仅没用用上gpu加速,反而把原来的环境搞得一团糟,连import tensorflow as tf 都一直报错。
把AppData\Roaming\Python\Python38\site-packages这个目录下的包全删了之后,新建了一个tensorflow-gpu2.4环境。
在这个环境里

pip install tensorflow-gpu==2.4.0
#进入python
python
import tensorflow as tf
成功
print(tf.test.is_built_with_cuda())  # 检查是否使用CUDA
true
print(tf.config.list_physical_devices('GPU'))
返回设备名

这一切都说明我花费两三天终于把新环境搭建好了
但是!还没投入使用,新问题又来了
因为我要训练的data是csv文件,所以我安装了pandas
但是pandas和tensorflow对numpy的版本都有要求,并且要求刚好有冲突。
pandas要求numpy大于等于1.20.3
tensorflow要求numpy=1.19.2
这样一来,怎么都没法构建和谐的环境。
突然,我想到了加–user可以把包放在c盘的AppData\Roaming\Python\Python38\site-packages里,并且这个路径下的包虚拟环境也是可以用的。
那这样是不是可以install两个numpy?
于是我在虚拟环境中

pip install numpy==1.19.2

ok,import tensorflow成功,利用tensorflow新建lstm模型也成功。但是import pandas报错。
接下来,在虚拟环境中

pip install --user numpy==1.20.3

这时我发现AppData\Roaming\Python\Python38\site-packages文件里多出了两个numpy文件夹。
再import pandas,成功。
import tensorflow,成功。
终于,环境大和谐!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
创建和管理虚拟环境是使用condapip的常见操作之一。首先,您可以使用conda来创建和激活虚拟环境。例如,使用以下命令创建名为"pytorch"的虚拟环境并激活它: ``` conda create -n pytorch python=3.6 conda activate pytorch ``` 安装所需的包后,您可以使用`pip list`命令查看在当前激活的虚拟环境安装的包。 要退出虚拟环境,您可以使用以下命令: ``` conda deactivate ``` 如果您想要删除一个虚拟环境,可以使用以下命令: ``` conda env remove --name 环境名 ``` 请注意,上述命令中的"环境名"需要替换为您要删除的实际环境的名称。 在PyCharm中导入虚拟环境,您可以打开PyCharm,选择"File" -> "Settings" -> "Project: Your Project" -> "Python Interpreter"。然后,点击右上角的齿轮图标选择"Add" -> "Conda Environment" -> "Existing environment",并选择您的虚拟环境所在的目录路径。 在Jupyter Notebook中导入虚拟环境,您可以先激活您想要添加虚拟环境,然后运行以下命令: ``` pip install ipykernel ipython kernel install --user --name 环境名 ``` 这将在Jupyter Notebook中添加虚拟环境。您可以通过打开Jupyter Notebook并查看内核列表来验证虚拟环境是否成功添加。 关于使用conda虚拟环境的更多详细信息,您可以参考之前的文章中提供的链接。希望这些信息能对您有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [condapip区别安装package包,虚拟环境](https://blog.csdn.net/deer2019530/article/details/127713528)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [condapip 常用命令+ python虚拟环境](https://blog.csdn.net/weixin_42081389/article/details/113574611)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值