簡體   English   中英

當我通過 ssh 進入一個 vagrant 框時,如何自動激活 Python venv?

[英]How can I activate a Python venv automatically when I ssh into a vagrant box?

在運行 Ubuntu 16.04 的 Vagrant VM 中,我使用以下命令創建了 Python 3 虛擬環境:

python3 -m venv /home/vagrant/venv

當我vagrant ssh ,我可以使用以下任一方法激活它:

source /home/vagrant/venv/bin/activate

或者

. /home/vagrant/venv/bin/activate

在配置期間,我正在創建文件/etc/profile.d/login-bash.sh

cd /vagrant
. /home/vagrant/venv/bin/activate

當我ssh進入時,該文件正在運行,因為我在/vagrant共享目錄中啟動,但第二行似乎沒有做任何事情。

問題解決了。 ~/.profile將在每個ssh登錄名上運行:

config.vm.provision "shell", inline: 'echo ". /home/vagrant/venv/bin/activate" > ~/.profile', privileged: false

如果您在Vagrantfile 中使用以下行,問題將得到解決:

config.vm.provision "shell", inline: 'echo ". /home/vagrant/venv/bin/activate" > ~/.profile', privileged: false

如果您需要激活 Python 環境並將目錄更改為 /vagrant,請在Vagrantfile 中使用以下行:

config.vm.provision "shell", inline: 'echo ". /home/vagrant/venv/bin/activate && cd /vagrant" > ~/.profile', privileged: false

在一天結束時,你的Vagrantfile應該看起來像(加上你自己的配置):

Vagrant.configure("2") do |config|    
  config.vm.provision "shell", inline: 'echo ". /home/vagrant/venv/bin/activate && cd /vagrant" > ~/.profile', privileged: false
end

不要忘記在終端上運行vagrant up --provision以使您的更改在salve Vagrantfile后計數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM