远程计算机无conda情况下配置python虚拟环境

  1. 按照正常流程,根据远程计算机的IP地址/用户名/密码,通过pycharm进行部署

部署流程为: pycharm主菜单--> 工具-->部署 -->配置

**注意,pycharm的远程部署必须是专业版

  1. 配置远程python解释器

上图是配置SSH解释器的截图,当希望新建一个虚拟环境时,会进入此界面。在本界面上需要注意的有三处:

  1. Location,是新创建的虚拟环境的位置,一般放在当前项目文件夹下

  2. base interpreter,基础解释器。一般来说,远程计算器已经有安装python解释器,直接用安装好的即可。如果没有,需要在远程计算机上单独下载python

  3. sync folders, 新建的虚拟环境需要确定本地和远程计算机的映射路径

在这个步骤容易出问题:

如果没有安装conda(比如远程计算机没有外网,或者其他原因无法配置conda),就不能直接去管理不同的python环境,按照上述步骤构建的虚拟环境无法被激活

假设,此时远程计算机上本身已经存在python环境(即base环境),那么按照上述方式在pycharm中新建的虚拟环境路径并没有被写入计算机的环境变量,在shell等终端上输入python,默认的路径还是原有的python解释器。

**上述的情况如果用conda的语言来表达,就是新建的虚拟环境没有被activate

所以此时如果贸然在终端使用pip install -r requirements.txt,那么是在为原有的base环境安装第三方库,而不是对新建的虚拟环境安装

  1. 所以,要在没有conda的情况下,手动将新创建的python虚拟环境激活,激活后才能用pip安装第三方库:

在终端查找环境变量:

复制代码
username@linux_number:~/PythonObject> env

在输出的内容中找到PATH

复制代码
PATH=/usr/local/xxx/bin:/usr/local/xxx/bin:/usr/local/xxx/bin:/opt/buildtools/python-3.9.11/

然后将虚拟环境中python所在的bin文件夹路径合并到PATH的最前方。不能使用export PATH=$PATH:<新python执行文件所在路径>,因为这样会导致新路径在最后部,被前方路径覆盖

复制代码
export PATH=<新python执行文件所在路径>:<原PATH路径>

然后再执行env语句,查看路径是否更改成功

  1. 上述操作就相当于是激活了新构建的python环境,此时在终端中,如果执行python命令,操作系统会在PATH中去寻找执行文件。由于新创建的虚拟环境路径排在第一位,系统优先选择虚拟环境中的python解释器。

而且,因为python、python3、python3.9、pip、wheel等执行文件全在同一个bin文件夹下,更改完PATH后,无论是在终端进入python,还是在终端使用pip做第三方库安装,都会默认使用新构建的虚拟环境中的执行文件

  1. 此时在执行export操作的终端窗口(因为export是一次性操作,env更改只在当前窗口有效),执行pip install -r requirements -i <镜像源路径>语句,即可对新创建的虚拟环境安装第三方库

***过程中注意两点:

(1) 构建虚拟环境时,会新创建一个文件夹,此文件夹的读写属性根据情况做一下设置:

复制代码
sudo chmod -R 777 <文件夹路径>

*相关资料:
-rw------- (600)      只有拥有者有读写权限。
-rw-r--r-- (644)      只有拥有者有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700)      只有拥有者有读、写、执行权限。
-rwxr-xr-x (755)      拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx--x--x (711)      拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666)      所有用户都有文件读、写权限。
-rwxrwxrwx (777)      所有用户都有读、写、执行权限。

(2) 对于镜像源,根据需要添加信任

复制代码
pip install -r requirements.txt --trusted-host <http://xxxxx.com> -i <http://xxxxx.com>
相关推荐
2401_8368365931 分钟前
Haproxy搭建web群集
运维·服务器
wb18932 分钟前
shell脚本的条件测试
开发语言·python·excel
C墨羽38 分钟前
服务器间文件传输
运维·服务器·网络
小纭在努力2 小时前
【算法设计与分析】实验——改写二分搜索算法,众数问题(算法分析:主要算法思路),有重复元素的排列问题,整数因子分解问题(算法实现:过程,分析,小结)
数据结构·python·学习·算法·算法设计与分析·实验报告·实验
SSH_55235 小时前
【大模型】情绪对话模型项目研发
人工智能·python·语言模型
love530love5 小时前
【笔记】在 MSYS2(MINGW64)中安装 python-maturin 的记录
运维·开发语言·人工智能·windows·笔记·python
G皮T8 小时前
【Python Cookbook】文件与 IO(二)
python·i/o·io·文件·gzip·stringio·bytesio
Li-Yongjun8 小时前
5G-A:开启通信与行业变革的新时代
运维·服务器·5g
封奚泽优8 小时前
使用Python绘制节日祝福——以端午节和儿童节为例
人工智能·python·深度学习
干啥都是小小白8 小时前
话题通信之python实现
python·机器人·ros