远程计算机无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>
相关推荐
.select.7 分钟前
TCP 5(socket编程)
服务器·网络·tcp/ip
skilllite作者13 分钟前
SkillLite 多入口架构实战:CLI / Python SDK / MCP / Desktop / Swarm 一页理清
开发语言·人工智能·python·安全·架构·rust·agentskills
xcbeyond20 分钟前
Linux 磁盘挂载
linux·运维·服务器
ZC跨境爬虫28 分钟前
批量爬取小说章节并优化排版(附完整可运行脚本)
前端·爬虫·python·自动化
ths51230 分钟前
Python 正则表达式实战指南:从入门到精通(12 个高频案例)(三)
python·正则表达式
ZC跨境爬虫30 分钟前
海南大学交友平台登录页开发实战day4(解决python传输并读取登录信息的问题)
开发语言·前端·python·flask·html
Wyawsl31 分钟前
Python操作MySQL数据库
数据库·python·mysql
SuperEugene39 分钟前
Python 异步 async/await:为什么 AI 框架大量使用?| 基础篇
开发语言·人工智能·python
SMF19191 小时前
【uv】Python包管理器uv安装和应用
开发语言·python·uv
gergul1 小时前
在llama-cpp-python中使用自己编译的llama.cpp,解决pip install llama-cpp-python报错
python·llama·llama.cpp·llamacpppython