本文的目的是帮助大家配置专属于自己的python环境,适用于ubuntu系统,亲测好用!
适用情况:
- 多人使用同一台服务器,共用python环境可能导致某些安装包莫名被别人更改或升级。
- 自己需要多个相同系统中跑实验,不希望每换一个服务器就重配一次python环境。
主要用来编译python包,据说包含下列内容12,其中许多先前安装过或系统自带,所以并未特地探究。
下载安装包gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-deve openssl libssl-dev
根据需要从官网下载对应版本的python安装包,我下载的是3.8.7版本并解压,解压后的文件夹名为Python-3.8.7。
更改配置主要就是从Setup文件文件中删注释,文件路径:Python-3.8.7/Moudles/Setup。
1、此注释不删除可能不能自动安装pip3。
#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
改为
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
2、此注释不删除使用pip安装包时无法可能不能进行SSL网络连接2。
# Socket module helper for socket(2) #_socket socketmodule.c # Socket module helper for SSL support; you must comment out the other # socket line above, and possibly edit the SSL variable: #SSL=/usr/local/ssl #_ssl _ssl.c # -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl # -L$(SSL)/lib -lssl -lcrypto
改为
# Socket module helper for socket(2) _socket socketmodule.c # Socket module helper for SSL support; you must comment out the other # socket line above, and possibly edit the SSL variable: #SSL=/usr/local/ssl _ssl _ssl.c -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl -L$(SSL)/lib -lssl -lcrypto安装python到指定位置
假设指定文件夹名为py387。
cd Python-3.8.7 ./configure --prefix=py387 make && make install
至此python已经完全安装成功,之后此目录py387下的文件可作为你的专属python环境。如果系统相同的话,也可打包迁移至其他服务器中使用。
python使用输入python可执行文件通常在bin目录下,我们解压后找到其位置即可使用。如,我解压后路径为:/home/cjq/kk_env/kkpy387/bin/python3。
1、在编辑器使用,如pycharm。在创建项目时,找到其绝对路径作为解释器即可。
2、在客户端使用,如下图,输入绝对路径即可进入python环境。
为了方便使用,我们我们可以考虑为其取一个别名,具体做法为在/home/用户名/.bashrc中加入下面一句话,然后执行source ~/.bashrc。
alias kkpy3=/home/cjq/kk_env/kkpy387/bin/python3
之后可以直接在客户端输入别名,代替其绝对路径,如下图。
注意!可能有读者使用的客户端为zsh,需要修改的非.bashrc文件,而是.zshrc文件,方式如下。
sudo vi ~/.zshrc source ~/.zshrc
由于笔者水平有限,如有错误或未尽之处欢迎大家指出!!!
https://www.cnblogs.com/knighterrant/p/10719887.html ↩︎
https://blog.csdn.net/zeqiongyang/article/details/80135056 ↩︎ ↩︎
https://blog.csdn.net/YMY_mine/article/details/103801458 ↩︎



