Ubuntu中为python项目下载安装包

1.关于pycharm给项目下载包

给pycharm的包仓库添加了路径"http://mirrors.aliyun.com/pypi/simple/"下载包时出错,提示地址或主机不被信任并忽略,且推荐使用HTTPS协议或静默该警告并使用"--trusted-host mirrors.aliyun.com"。

Ubuntu中为python项目下载安装包_第1张图片

让我疑惑的是,尽管项目的python解释器是python3.8,在pycharm中给项目下载包时执行的命令却是pip,也就是python2系列的包管理器,我首先怀疑是这会使得下载的包并不能被python3解释器的项目文件成功import。但当我按提示在pycharm中加入包下载路径https://mirrors.aliyun.com/pypi/simple,再次下载requests包便能成功下载到项目的库目录了:

Ubuntu中为python项目下载安装包_第2张图片

 

Ubuntu中为python项目下载安装包_第3张图片

所以我产生了一个推测:pycharm应该会视项目的python解释器版本选择正确的pip包管理器下载对应python语法的包,因为上面下载包失败的提示中给出的执行命令中使用了pip肯定是会失败的,因为我主机已经删除了python2.7及其pip包管理器命令,只有pip3包管理器,所以猜测pycharm实际调用的应该是对应该项目的python3.8解释器的pip3;

另注:

之前我手贱apt autoremove python2 python2.7时,把依赖于python2.7的gnome桌面也给卸载了,后来用了一晚上修复,参见记一次使用apt autoremove卸除Ubuntu自带python2.7、python3、python3.6等导致gnome桌面被依赖卸载,修复应该是重装了python2的一些库文件,并没有再装python2的解释器程序,所以终于只用为python3安装pip了。

Ubuntu中为python项目下载安装包_第4张图片

Ubuntu中为python项目下载安装包_第5张图片

2.下载不同python版本对应的包管理器

不同python解释器对应不同版本的pip包管理器不一样,这里指的是用"apt-get instal python3-pip"中的pip包管理器名称,试验如下:

安装python3-pip时提示依赖有python3、python3.6的一些包,而安装python-pip时则提示依赖有python2.7以及python2.7的包:

Ubuntu中为python项目下载安装包_第6张图片

3.shell下使用pip3 install --index-url https://mirrors.aliyun.com/pypi/simple request安装包request包

这里当使用http协议时会提示库不被信任,改成https协议就可以了:

Ubuntu中为python项目下载安装包_第7张图片

此时使用pip3包管理器安装的包会下载在~/.local/lib/python3.6的库目录下(在pycharm中给项目下载包的窗口下边有个选项是否"Install to user's site packages directory(~/.local)",说明~/.local/lib/python×.×目录是对应python解释器的公共包目录,不选该项将只会安装包到项目的虚拟环境的python解释器包目录),在shell中只有在python3.6的解释器环境下能导入此时下载的request包,而python3.8不行。可以使用pip3 install [options]的选项-t, --target

或-d, --download 指定包安装、下载的路径,参考 使用pip为不同版本的python解释器下载安装包。

Ubuntu中为python项目下载安装包_第8张图片

Ubuntu中为python项目下载安装包_第9张图片

下面是find到的/opt/pycharm-2020.1.1目录中的requests,看日期应该是随pycharm程序一起安装的,但在项目中import时不会被找到,

Ubuntu中为python项目下载安装包_第10张图片

4、总结

安装包有三种方式吧我理解:

①、在shell中直接使用pip3 install --index-url https://mirrors.aliyun.com/pypi/simple request

会下载在~/.local/lib/python3.6的库目录下(我主机的pip3包管理器默认是为python3.6解释器安装包),在shell中只有在python3.6的解释器环境下(执行命令python3.6进入python3.6的解释器环境)能导入下载的request包,而python3.8的解释器环境不能导入。可以使用pip3 install [options]的选项-t, --target

或-d, --download 指定包安装、下载的路径;

②、pycharm软件中新建的项目,由于默认生成了虚拟环境venv,所以包必须安装在这个虚拟环境的目录中才能被import,使用pycarm-->settings-->Project: name_project-->Project Interpreter-->+ 搜索下载包,成功后将安装在当前项目的虚拟环境目录下,当前项目即可import;

③、在shell中进入(激活)某个项目的虚拟环境(source **/venv/bin/activate),然后调用对应python解释器版本的pip包管理程序下载包(pip3 install --index-url http://mirrors.aliyun.com/pypi/simple/ requests),下载的包就在当前虚拟环境的目录中,在当前虚拟环境中的项目即可import;

Ubuntu中为python项目下载安装包_第11张图片

上图所示是执行python3.8 -m venv venv_3.8建立了虚拟环境venv_3.8,然后激活该虚拟环境后,使用pip3 install --index-url https://mirrors.aliyun.com/pypi/simple/ requests为该虚拟环境下载安装requests包,可以看到包确实安装到了虚拟环境目录的包目录中。

Ubuntu中为python项目下载安装包_第12张图片

上图所示是从Shell进入|激活了由pycharm建立的项目untitled(使用python3.8解释器)的虚拟环境后,再使用pip3 install --index-url https://mirrors.aliyun.com/pypi/simple/ requests为该虚拟环境下载安装requests包,可以看到包确实安装到了项目虚拟环境目录下的python3.8的包目录中,这相当于代替了pycharm下载安装包。

这两种在shell中进入项目的虚拟环境并使用pip3为项目下载安装包能确保是下载安装到虚拟环境中的python解释器的包目录下,上面①在shell中不进入某个项目的虚拟环境而是直接调用pip3下载安装包会固定下载安装包到~/.local/lib/python3.6的库目录下(我主机的pip3包管理器默认是为python3.6解释器安装包,可以使用pip3 install [options]的选项-t, --target

或-d, --download 指定包安装、下载的路径)

④、

 

 

你可能感兴趣的:(Python)