Set up virtualenv with Paramiko SSH(使用Paramiko SSH设置Virtualenv)
本文介绍了使用Paramiko SSH设置Virtualenv的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在Windows中使用Python和Django的经验有限,现在我正在尝试了解如何将我的代码部署到Ubuntu 16.04 LTS VPS上。在阅读了关于SE的各种教程和许多答案后,我设法前进了相当远(对我来说是这样),但现在我被困住了。
手动(通过Putty)我可以执行以下操作:
# check that Python 3.5 is installed
python3 --version
# install pip
sudo -kS apt-get -y install python3-pip
# upgrade pip to newest version
pip3 install --upgrade pip
# check result
pip3 --version
# install venv
sudo -kS pip3 install virtualenv virtualenvwrapper
# create venv
virtualenv ~/Env/firstsite
# make sure venv is created
ls -l ~/Env/firstsite/bin/python # /home/droplet/Env/firstsite/bin/python3.5 -> python3
# switch on venv
source ~/Env/firstsite/bin/activate # (firstsite) droplet@hostname:~$
# check that python3 is taken from venv
which python3 # /home/droplet/Env/firstsite/bin/python3
这样就可以正确创建和打开虚拟环境。我可以继续安装Django。
但是,当我尝试在自动机制中使用Paramiko(我使用paramiko.SSHClient().exec_command(cmd, input_string, get_pty=False
执行命令)执行完全相同的操作时,一切都完全相同,直到最后一个命令:
exec_command('which python3')
返回/usr/bin/python3
。因此,我认为source activate
不能通过Paramiko的SSH工作。
- 为什么?
- 我该如何应对?
- 我是否可以检查venv是否以更直接(更可靠)的方式启用?
推荐答案
我们可以轻松地激活Virtualenv并对其执行命令。
示例:
import paramiko
hostname = 'host'
port = 22
username = 'root'
password = 'root'
s = paramiko.SSHClient()
s.load_system_host_keys()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
s.connect(hostname, port, username, password)
command = 'source /root/Envs/env/bin/activate;python3 --version;qark;echo hello'
(stdin, stdout, stderr) = s.exec_command(command)
for line in stdout.readlines():
print(line)
for line in stderr.readlines():
print(line)
s.close()
这篇关于使用Paramiko SSH设置Virtualenv的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:使用Paramiko SSH设置Virtualenv
基础教程推荐
猜你喜欢
- 筛选NumPy数组 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01