PyCharm及python解释器详细安装教程

一、PyCharm安装步骤

1、PyCharm Windows版本下载地址:PyCharm

在这里插入图片描述
2、打开安装程序,点击“next”

在这里插入图片描述
3、选择安装路径,再次点击“next”

在这里插入图片描述
4、将图中四个选项全部勾选,点击“Finish”即可完成安装

在这里插入图片描述

二、python解释器安装步骤

1、python解释器 Windows版本下载地址:python
个人不建议安装最新版本的python解释器,此处以python3.9.6版本为例)

在这里插入图片描述
在这里插入图片描述
2、下载完后双击打开exe即可可以开始安装,注意将Add Python * to PATH勾选上(这样会自动给你配置好环境变量,十分方便,无需再去系统设置),最后点击Install Now

在这里插入图片描述
3、点击“close”完成python解释器的安装

在这里插入图片描述
4、按下Win+R,输入cmd,输入python后回车,出现你安装的python版本就说明安装成功,且环境变量已经配置成功

在这里插入图片描述

三、在PyCharm中安装python解释器

1、打开PyCharm,点击New Project(新建一个项目)

在这里插入图片描述

2、选择项目所在路径—>选择Previously configured interpreter(需要提前下载安装好python)—>勾选Create a main.py—>最后点击Create
在这里插入图片描述

3、点击运行main.py,在控制台输出“Hi,PyCharm”,说明python配置成功

在这里插入图片描述
五、为PyCharm配置镜像源

1、国内常用源镜像地址

清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

2、手动添加镜像源

在Terminal输入命令:

pip install 下载的模块名 -i https://pypi.tuna.tsinghua.edu.cn/simple

例子:

pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

在这里插入图片描述
该方法的好处是:不用像其它配置一样要去配置一遍,只需要在后面加上:

-i https://pypi.tuna.tsinghua.edu.cn/simple

当然安装第三方库的方法有很多种,上述描述的是我个人非常推荐的一种

参考博客
(1)python安装教程(Windows最新)
(2)pycharm安装教程,超详细
(3)pycharm从安装到全副武装,学起来才嗖嗖的快,图片超多,因为过度详细!

  • 23
    点赞
  • 108
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 C++ 中,shared_ptr 常常被用来管理动态分配的资源。然而,当多个 shared_ptr 相互引用时,就会出现循环引用的问题,导致内存泄漏。为了解决这个问题,C++11 引入了 weak_ptr。 weak_ptr 是 shared_ptr 的一种扩展,它可以指向一个由 shared_ptr 管理的对象,但并不拥有该对象的所有权。weak_ptr 可以被用来解决 shared_ptr 循环引用的问题。 当一个对象被多个 shared_ptr 共享时,每一个 shared_ptr 都会增加该对象的引用计数。如果其中一个 shared_ptr 被销毁时,该对象的引用计数会减少。但如果多个 shared_ptr 相互引用,就会导致循环引用的问题。例如: ```c++ class B; class A { public: std::shared_ptr<B> b_ptr; }; class B { public: std::shared_ptr<A> a_ptr; }; int main() { std::shared_ptr<A> a(new A); std::shared_ptr<B> b(new B); a->b_ptr = b; b->a_ptr = a; return 0; } ``` 在上面的代码中,A 和 B 互相引用,它们的引用计数永远不会为 0,导致内存泄漏。为了解决这个问题,我们可以将其中一个 shared_ptr 改为 weak_ptr。例如: ```c++ class B; class A { public: std::weak_ptr<B> b_ptr; }; class B { public: std::shared_ptr<A> a_ptr; }; int main() { std::shared_ptr<A> a(new A); std::shared_ptr<B> b(new B); a->b_ptr = b; b->a_ptr = a; return 0; } ``` 在这个例子中,A 持有一个指向 B 的 weak_ptr,而 B 持有一个指向 A 的 shared_ptr。这样,当 A 或 B 中的任意一个 shared_ptr 被销毁时,它们所指向的对象的引用计数都会减少,从而解决了循环引用的问题。 需要注意的是,当通过 weak_ptr 访问对象时,需要先将 weak_ptr 转换为 shared_ptr,否则无法访问对象。假设上面的例子中,我们需要访问 B 对象,可以这样做: ```c++ std::shared_ptr<B> b_ptr = a->b_ptr.lock(); if (b_ptr) { // 访问 B 对象的成员 } ``` 在上面的代码中,我们使用 lock() 方法将 weak_ptr 转换为 shared_ptr,如果转换成功,就可以访问 B 对象的成员了。 总之,weak_ptr 是 shared_ptr 的一种扩展,可以用来解决 shared_ptr 循环引用的问题。通过将其中一个 shared_ptr 改为 weak_ptr,可以防止循环引用导致的内存泄漏。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值