远程计算机无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>
相关推荐
上海云盾-小余7 小时前
流量攻击复盘:为什么 WAF 完好,业务依旧瘫痪
运维·服务器·网络
我命由我123458 小时前
Linux - Linux/POSIX 路径斜杠折叠规则
linux·运维·服务器·android studio·android jetpack·android-studio·android runtime
谢白羽8 小时前
SGLang的AWQ量化笔记
笔记·python·sglang
Uncertainty!!9 小时前
Linux 主机无法完成校园网认证排查记录:从 DHCP、ARP 到 Portal 认证流程分析
linux·运维·服务器
迷迭香yy9 小时前
基金档案数据工程实战从收入分析到持仓穿透的Python解析 IG50免费开源股票数据API接口
开发语言·python
其实防守也摸鱼9 小时前
权限提升与横向移动:从内网渗透到域控的完整技术图谱
运维·服务器·数据库·安全·github·copilot·渗透
清水白石0089 小时前
Python 类型设计深度解析:TypedDict 能否替代 dataclass?从 JSON 数据边界到 API 设计的最佳实践
java·python·json
mounter6259 小时前
突破零停机演进:Linux 内核 Live Update Orchestrator (LUO) 架构设计与热升级演进
linux·服务器·linux kernel·kernel·kho·luo
黑泽明*9 小时前
KVM虚拟化入门与热迁移实战
运维·服务器
波多利希最高礼仪的握力器10 小时前
安全复制SCP
linux·服务器·安全