私はWindowsでPythonとDjangoの経験が限られていますが、今は自分のコードをUbuntu 16.04 LTS VPSに配備する方法を理解しようとしています。 SEで様々なチュートリアルやたくさんの答えを読んだので、私はかなり遠くに(私にとっては)進歩することができましたが、今は私は立ち往生しています。 (パテ経由)Paramiko SSHでvirtualenvを設定する
手動で私は次の操作を行うことができます。
# 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) [email protected]:~$
# 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がより直接的(信頼できる)に有効になっていることを確認できますか?