导言:这篇博文是关于python,pycharm,模块安装,利用python手动创建虚拟环境,以及快速迁移安装的包
一、pycharm配置编译器
-
刚开始用python的时候,如果不习惯python官方提供的IDE,那么就得自己找一款合适的IDE。诸如visualstudio,pycharm等
但是考虑到visualstudio动辄7-10G,小小的C盘实在承受不来。而市面上大部分人推荐的pycharm倒是不大,安装完也不会超过1G。考虑到pycharm本身是不带python编译器的,所以需要自己下载安装python2或者python3的。 -
使用pycharm的时候一般需要自己创建工程,此时就pycharm就会在你设定的目录下创建一个虚拟环境,在这个虚拟环境中,它会有你需要的编译器python.exe,pip.exe等等。
图.1
关于虚拟环境这块,多说一点,虚拟环境就相当于你重新做了一个包(模块),你在这个包里放置自己写的文件,执行的时候,也是从这个位置调用python编译器,还有这个工程需要各种模块等等,相当于一个小的生态了。至于虚拟环境的优势等,可以跳转到上面的链接仔细阅读。 -
在File-->settings-->project:你的工程里可以选择哪个位置的编译器,下图中1的位置
图.2
点1位置选择add...,会存在以下两个选择
图.3
第一个就是我们的现在的新环境,虚拟环境,如果我们用pycharm的话,软件会帮我们搭建好,如果不想用pycharm的话也可以自己手动搭建,后面会详细提这个。第二个就是你第一次安装python时候的编译器,我们可以称之为系统环境。即使是虚拟环境,第一次创建的时候也得用到这个系统环境里的python等工具。
VS给出的解释:
虚拟环境Virtual environments,虽然使用全局环境是一种简单的入门方式,但随着时间的推移,该环境中将充斥着你为不同项目安装的许多不同的包。 这使得很难根据已知版本的一组特定包对应用程序进行彻底测试,而这正是你在生成服务器或 Web 服务器上设置的环境。 当两个项目需要不兼容的包或相同包的不同版本时,也会发生冲突。因此,开发人员通常会为项目创建虚拟环境 。虚拟环境是项目中的子文件夹,其中包含特定解释器的副本。激活虚拟环境时,任何安装的包仅安装在环境的子文件夹中。然后,当你在该环境中运行 Python 程序时,便知道它仅针对那些特定的包运行。
二、pycharm安装模块
1.在python里安装模块,我们可以直接使用pip命令(默认已经配置好环境变量了),以numpy这个模块为例,
pip install numpy
2.在pycharm里就更方便了。在图二中点击2加号,直接搜索numpy就可以安装了。
图.4
注意红色圈起来的地方是可以修改pip源,提高你下载模块的速度的,我一般用的是阿里的镜像,具体可以百度。
三、手动创建虚拟环境
可以参考这两篇博客:
在pip中安装virtualenv,执行命令在指定位置创建虚拟环境
命令如下
pip install virtualenv
virtualenv所在位置\virtualenv 目标位置\venv
如果配置了python的环境变量,virtualenv前面的位置就不用写了。
此外上面的第二个命令还可以在后面追加 --no-site-packages,具体可以参考原博文(--distribute命令不要轻易尝试!!!)。
四、离线快速安装python模块
之所以会写这块,是因为我想在一个无法联外网的服务器上执行python代码,如果我的python代码依赖模块多的话,离线安装就很麻烦。为此,找到以下两篇文章并执行成功。
主要是参考下面两篇博客:
这里给出核心的命令:
a.离线需要的模块总的名称版本号等
pip freeze > requirements.txt
注:新版本 freeze命令出来的requirements.txt文件,可能会出现出现@ file:///的问题
命令就要改成,参考
pip list --format=freeze > requirements.txt
然后自己删除pip
,setuptools
,wheel
,distribute
等原始的依赖包
b.下载
pip download -r requirements.txt -d c:/packages
c.安装
pip install --no-index --find-links=离线包的位置 -r requirements.txt
#如果想要利用requirements.txt 卸载软件
pip uninstall -r requirements.txt -y
其中, --no-index 代表忽视pip 忽视默认的依赖包索引,这个requirement.txt有多强,等你在github上下载别人代码的时候,自己一个个手动安装依赖库的时候就知道了。如果作者没有上传这个,而依赖库又比较多的时候,就等着哭吧,反正我是哭过一次。
暂时先写这么多,后面想到什么再补充