手动(通过Putty)我可以做以下事情:
# check that Python 3.5 is installedpython3 --version # install pipsudo -kS apt-get -y install python3-pip # upgrade pip to newest versionpip3 install --upgrade pip# check resultpip3 --version # install venvsudo -kS pip3 install virtualenv virtualenvwrapper # create venvvirtualenv ~/Env/firstsite # make sure venv is created ls -l ~/Env/firstsite/bin/python # /home/droplet/Env/firstsite/bin/python3.5 -> python3# switch on venvsource ~/Env/firstsite/bin/activate # (firstsite) droplet@hostname:~$# check that python3 is taken from venvwhich 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.所以我认为源激活不能通过Paramiko的SSH工作.
>为什么?
>我该如何应对?
>我可以通过更直接(和可靠)的方式检查venv是否已启用?
在exec_command中给出环境中python可执行文件的路径,例如:
stdin,stdout,stderr = ssh.exec_command(/path/to/env/bin/python script.py)
在我的情况下(使用miniconda和一个名为pyODBC的env):
stdin,stderr = ssh.exec_command(~/miniconda2/envs/pyODBC/bin/python run_script.py)
运行命令〜/ miniconda2 / envs / pyODBC / bin / python -m pip List打印此env中的模块列表以确认
总结以上是内存溢出为你收集整理的使用Paramiko SSH设置virtualenv全部内容,希望文章能够帮你解决使用Paramiko SSH设置virtualenv所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)