远程计算机无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>
相关推荐
star learning white4 分钟前
xm C语言12
服务器·c语言·前端
0思必得012 分钟前
[Web自动化] CSS基础概念和介绍
前端·css·python·自动化·html·web自动化
偶遇急雨洗心尘14 分钟前
记录一次服务器迁移时,数据库版本不一致导致sql函数报错和系统redirect重定向丢失域名问题
运维·服务器·数据库·sql
计算机徐师兄15 分钟前
Python基于Django的MOOC线上课程推荐数据分析与可视化系统(附源码,文档说明)
python·数据分析·django·慕课线上课程推荐·慕课线上课程推荐可视化系统·pytho线上课程推荐可视化·线上课程推荐数据分析可视化系统
free-elcmacom17 分钟前
Python实战项目<2>使用Graphviz绘制流程框图
开发语言·python·graphviz
羊村懒哥19 分钟前
ubuntu24.04系统安装VNC
linux·运维·服务器
ljuncong24 分钟前
python的装饰器怎么使用
开发语言·python
该用户已不存在37 分钟前
没有这7款工具,难怪你的Python这么慢
后端·python
serve the people42 分钟前
tensorflow 零基础吃透:RaggedTensor 的不规则形状与广播机制 2
人工智能·python·tensorflow
Hello.Reader44 分钟前
Flink ML 基本概念Table API、Stage、Pipeline 与 Graph
大数据·python·flink